3

我正在使用 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"

任何帮助将非常感激。

谢谢。

4

2 回答 2

1

一种选择是设置环境CL变量,使用类似:

set CL=/DMYPROC_ENABLE_MYMODULE

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

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

于 2010-08-23T21:44:09.890 回答
1

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

于 2010-08-23T21:44:12.850 回答