我正在使用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"
任何帮助都会非常感激。
感谢。
答案 0 :(得分:1)
一种选择是设置the CL
environment variable,使用类似:
set CL=/DMYPROC_ENABLE_MYMODULE
C ++编译器(cl.exe
)将在运行时将CL
环境变量的内容添加到其命令行。
我知道如果您使用msbuild
进行构建,则可以定义宏,但我不确定在直接使用devenv
时是否也可以这样做。
答案 1 :(得分:1)
您可以为解决方案进行不同的配置,并为不同的配置定义不同的预处理器标志。然后,您只需要在命令行中选择配置,而无需多个解决方案或项目文件。