如何在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 条评论
登录 后参与评论

相关文章

如何在Android Studio中添加链接的源文件夹?

在Visual Studio中进行预处理后,如何查看C / C ++源文件?

如何在Meteor 1.0中有条件地加载/捆绑CSS文件?

如何在C中有条件地编译main()?

如何在C ++ Builder中有条件地为不同平台编译代码?

Visual Studio Code中的“ compileOnSave” TypeScript源文件

Android Studio构建版本-如何在不同版本中具有相同的源文件

如何在Android Studio中清理未使用的资源文件

如何在bazel中有条件地指定C编译器定义?

如何在Visual Studio中添加资源文件

Visual Studio 2017中源文件的默认编码是什么

如何在Ruby on Rails中的html erb文件中有条件地显示div

Android Studio中的外部C ++源文件?

在没有Qt项目的情况下如何在Visual Studio中使用Qt资源文件?

如何在Visual Studio代码中编译和运行C ++源文件

如何在Visual Studio 2019中仅编译一个C文件?

如何在Visual Studio中编译C ++文件?

如何在Vim中有条件地编辑文件

使用Visual Studio devolopers命令提示符编译多源文件程序c ++

如何确保在Visual Studio中完整覆盖本地化资源文件?

如何在Visual Studio 2003中重命名C ++源文件?

Visual Studio:哪个源文件包括特定的库(带有“编译注释”)?

在Visual Studio 2012中,如何使用C ++ dll链接资源文件(.rc)

如何在Visual Studio 2015中使用资源文件

在Visual Studio代码中调试Ionic 2-如何在源文件中命中断点?

如何在systemd config中有条件地运行其他文件?

如何在 Visual Studio Code 或 dotnet 命令行中的两个项目之间链接源文件?

如何让 Intellisense 在 Visual Studio 2019 中处理独立的 C++ 源文件?

Visual Studio 抛出 LNK2019 和解决方案缺少头文件/源文件