从命令行构建VS2008动态添加预处理程序指令

时间:2010-08-23 21:21:17

标签: visual-studio visual-studio-2008 visual-c++ visual-c++-2008 vcbuild

我正在使用VS2008,并开发C / C ++项目。我使用.bat文件从命令行构建我的项目(VC2k8命令提示符)。我需要一种在构建时动态包含preprossor指令的方法。

我正在使用devenv从命令行构建。

>devenv my\project\path\myproject.sln /build release > logs\build.log

实际上我想根据批处理文件的命令行参数设置宏定义。我可以保留两个不同的.vcproj文件,但这会产生保留多个项目/ sln文件的问题。 我的批处理文件会是这样的......

if (condition)
#define MYPROC_ENABLE_MYMODULE "yes" // To be included in the project.
else
#define MYPROC_ENABLE_MYMODULE "no"

任何帮助都会非常感激。

感谢。

2 个答案:

答案 0 :(得分:1)

一种选择是设置the CL environment variable,使用类似:

set CL=/DMYPROC_ENABLE_MYMODULE

C ++编译器(cl.exe)将在运行时将CL环境变量的内容添加到其命令行。

我知道如果您使用msbuild进行构建,则可以定义宏,但我不确定在直接使用devenv时是否也可以这样做。

答案 1 :(得分:1)

您可以为解决方案进行不同的配置,并为不同的配置定义不同的预处理器标志。然后,您只需要在命令行中选择配置,而无需多个解决方案或项目文件。