windows環境中利用NMake工具編譯連接C++源代碼


  這篇文章是上一篇文章(http://www.cnblogs.com/LCCRNblog/p/4532643.html)的補充,因此需要先看看上一篇文章。

  最近在寫代碼的時候,需要通過命令的方式來執行生成的c++源代碼文件,因此需要學習有關windows環境下如何使用命令來編譯連接c++原文件。這一篇文章是自己慢慢摸索實踐得出的。作為自己入門的起點吧,后續還要好好深入理解這方面的知識。

1、准備

編寫好main.cpp header.h header.cpp這三個源代碼文件,並放入一個文件夾test中。

2、編寫NMake文件

在test文件夾中創建hello.mk文件,並寫入如下腳本

foo :main.obj header.obj
    cl.exe -EHsc main.obj header.obj -o foo
main.obj:main.cpp
    cl.exe -EHsc -c main.cpp
header.obj:header.h header.cpp
    cl.exe -EHsc -c header.cpp 
clean:
    del *.obj *.exe

注意腳本中空格需要保留,不能隨意添加和刪除。至於為什么,我暫時也不太清楚,后續慢慢了解學習。

-----------------------------------------------------------------------------補充 2015年5月29日17:17:56------------------------------------------------

第二行cl.exe -EHsc main.obj header.obj -o foo,這一行-o之前的參數都是傳遞個cl.exe的,-o之后的參數(包括-o)是傳遞個Link.exe的。

----------------------------------------------------------------------------------------------------------------------------------------------------------

我在實踐的過程中,把”header.obj:header.h header.cpp“這一行中的header.h去掉,重新執行這個腳本文件,任然能夠通過,這個原因我暫時還不太清楚,因為我也只是剛剛接觸這方面的知識,還需要進一步的嘗試,進一步的理解其中的原理。

然后在打開cmd,定位到test文件路徑,首先執行vcvarsall.bat(方法在上一篇文章中有涉及),然后執行如下命令

NMake /f hello.mk

在test文件夾中就會生成foo.exe可執行文件。

如果執行如下命令

NMake /f hello.mk clean

則在test文件夾中生成的所有*.obj和*.exe都會被刪除。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM