【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