如何在Visual Studio 2019中有条件地编译c ++源文件?

斯坦达什18

我需要根据环境变量或其他输入参数有条件地编译C ++源文件。VS2019中有一种机制可以做到这一点吗?

弗朗索瓦·安德里厄

该解决方案适用于VS2017,但我不知道为什么它也不适用于VS2019。

您可以“导入”环境变量作为预处理器定义。在Visual Studio项目的属性中,转到“配置属性”->“ C / C ++”->“预处理器”。单击“预处理器定义”字段,单击最右边的向下箭头,然后选择“编辑”。

在这里,您可以添加包含环境变量的预处理器定义。每行用一个符号表示一个定义,该符号[name]=[value]定义一个预处理器定义,该定义[name]将被替换[value]环境变量应包装在一个$()待解决的变量中因此,例如,要导入环境变量MY_ENV_VAR,可以添加definition MY_ENV_VAR=$(MY_ENV_VAR)如果MY_ENV_VAR在编译时说5,则此定义等同于#define MY_ENV_VAR 5整个项目中都可用。

然后,在源文件中,可以用#if/换行包装代码#endif以有条件地编译该代码。使用相同的示例,仅MY_ENV_VAR在正好为1的情况下仅编译源文件,您应编写:

#if MY_ENV_VAR == 1

// Entire source file

#endif  // #if MY_ENV_VAR == 1

请注意,启动Visual Studio时会加载环境变量。如果希望对环境变量的最新更改可见,则可能需要重新启动Visual Studio。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章