使用命令行在visual studio中编译为release

时间:2016-01-27 23:57:05

标签: visual-studio compilation

我正在使用visual studio 2013在命令行(cl.exe)上编译c ++代码。我知道在使用ide时,可以选择在发布模式或调试模式下进行编译。

命令行编译器是否也存在此选项?怎么可以访问?

我已经查看了Microsoft网站上cl.exe附带的所有选项,但似乎都没有。此外,微软网站似乎只包括如何通过ide进行编译以进行发布。

1 个答案:

答案 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