【VS】VS中使用命令行單獨編譯的方法


DATE: 2018.12.10


轉載自:https://blog.csdn.net/delphiwcdj/article/details/6778084

VS做的很智能,一個F7就完成了預處理、編譯、鏈接的所有工作。但是當工程比較大,使用的文件模塊比較多, 一旦出現編譯錯誤定位問題時就比較困難。因此,有時候需要對每個模塊單獨編譯,就像Linux下編寫的 makefile文件一下,分別編譯每一個.o目標文件然后再鏈接成為一個.exe可執行程序。最近為了驗證一段代碼, 需要在不同的編譯器下編譯對比,就順便總結下在VS下使用命令行分別編譯程序的方法。

下面總結一些常用的命令:

通過快捷方式Visual Studio Command Prompt (2010)可以打開VS的命令行界面。
或者調用

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"

(1) 在命令行提示符窗口中輸入:cl /? 或者 cl -help 可以查看cl所有的命令選項。
VS編譯選項可參考:https://blog.csdn.net/SoaringLee_fighting/article/details/84894175

(2) 在默認情況下cl編譯完后會自動調用link進行鏈接,可以使用/c選項阻止鏈接。

(3) 編譯一個文件命令:cl /FeMyapp 1.cpp,然后輸入程序名Myapp執行程序。(注意1.h在本地,可以通過/I選 項指定頭文件路徑)

(4) 編譯多個文件命令:cl /FeMyapp 1.cpp 2.cpp 3.cpp,然后輸入程序名Myapp執行程序。

(5) 只輸出 .i 預編譯文件命令:cl /FiA /P A.cpp,然后會生成 A.i 預編譯文件。這個方法類似Linux下的 gcc -E A.cpp -o A.i 命令。此命令的主要作用是用於檢查未定義情況的錯誤。

(6) 只輸出 .o 目標文件命令:cl /FoA /c A.cpp,然后會生成 A.obj 目標文件,類似Linux下的 .o 文件。注 意這里應該帶上 /c 選項,原因見(2),即默認情況下,cl會自動對編譯好的目標文件進行鏈接,如果此時,所 編譯的目標文件引用了其他目標文件中的符號的話,就會出現鏈接錯誤。


THE END!


免責聲明!

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



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