c++ - 如何在 Visual Studio 2017 C++ 编译时检查环境变量的存在?

标签 c++ visual-studio environment-variables compile-time

我想在编译时检查环境变量是否存在,但我找不到方法。

原因是代码可维护性:我使用 QT,我创建了一个指向根安装目录的环境变量,用于引用头文件和库。 所以几年后,当我或我的同事检查项目并尝试编译它时,我想按照 please install QT version XYZ and create environment variable QT_PATH to point at the 行抛出一条自定义综合错误消息根目录.

我知道自述文件是正确的做法,我也正在创建该文件,但我仍然想知道是否通常可以在编译时检查环境变量是否存在。

到目前为止,我最接近的是使用预处理器定义 QT_INSTALLATION_PATH=$(QT_PATH); 并检查它

#if QT_INSTALLATION_PATH == '\0'
#error "..."
#endif

如果 QT_PATH 不存在,它会抛出一个 expression expected 错误,如果它存在,则可以正常工作。

最佳答案

这样做的正确方法是使用 Visual Studio 生成器,它会在编译时间之前为您进行这些检查。

例如,CMake 在这方面做得非常好,可以选择特定版本的 Qt 或 OpenCV。 Qt 本身带有 QMake,但我建议您以通用生成器为目标(不确定 QMake 是否支持 OpenCV),即 CMake。

关于c++ - 如何在 Visual Studio 2017 C++ 编译时检查环境变量的存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54342245/

相关文章:

c++ - 在 API 中导出常量的正确方法

c++ - 为什么VS Debug版本将变量分配得这么远?

c++ - 将动态创建的结构项插入到结构 vector 中

c++ - 从 AppContainerSid 获取 AppContainerName 的 API

visual-studio - 筛选Visual Studio 2013 TFS合并到仅实际更改的文件

java - 在 Java 中设置环境变量有多重要?

在 C 中连接一个环境变量和一个字符串并提供给 fopen()

c++ - openGL在不同的显示模式下绘制圆形三角形和正方形

c++ - 应该替换现有类型,添加新类型

kubernetes - 为集群中的单个 pod 设置环境变量