我正在使用visual studio 2013在命令行(cl.exe)上编译c ++代码。我知道在使用ide时,可以选择在发布模式或调试模式下进行编译。
命令行编译器是否也存在此选项?怎么可以访问?
我已经查看了Microsoft网站上cl.exe附带的所有选项,但似乎都没有。此外,微软网站似乎只包括如何通过ide进行编译以进行发布。
答案 0 :(得分:2)
您要使用的工具是MSBuild.exe
。
在开发人员命令提示符下,为所有选项运行msbuild /?
。
示例:
MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
MSBuild MyApp.csproj /t:Clean /p:Configuration=Debug;TargetFrameworkVersion=v3.5
如果你想用cl.exe / link.exe做这个,那就有一个很大的"它取决于"在你想要的开关上。如果您使用的是纯默认值,则仍可能取决于项目在Visual Studio中的外观。一种简单的方法是在VS中创建一个简单项目,查看Configuration Properties
的项目属性,并查看每个Command Line
。或者通过cl /?
和link /?
对于可能的基本项目:
推出:
/GS /GL /analyze- /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /Fd"Release\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MD /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\ConsoleApplication2.pch"
调试:
/GS /analyze- /W3 /Zc:wchar_t /ZI /Gm /Od /Fd"Debug\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\ConsoleApplication2.pch"
正如您所看到的,有很多选项,没有单一答案,但Release
版本的重大差异是/D "NDEBUG"
和/O2