【发布时间】:2019-01-24 08:27:38
【问题描述】:
我想在编译时检查环境变量是否存在,但我找不到方法。
原因是代码的可维护性:我使用 QT 并创建了一个指向根安装目录的环境变量,用于引用头文件和库。
所以几年后,当我或我的同事检查项目并尝试编译它时,我想抛出一个自定义的综合错误消息,类似于please install QT version XYZ and create environment variable QT_PATH to point at the root directory。
我知道自述文件是执行此操作的正确方法,并且我也在创建该文件,但我仍然想知道通常是否可以在编译时检查环境变量的存在。
到目前为止,我得到的最接近的方法是使用预处理器定义 QT_INSTALLATION_PATH=$(QT_PATH); 并检查它
#if QT_INSTALLATION_PATH == '\0'
#error "..."
#endif
如果 QT_PATH 不存在会抛出 expression expected 错误,如果存在则可以正常工作。
【问题讨论】:
-
您是否尝试在其他编译器/链接器标志中添加对此环境变量的引用?
-
不,我该怎么做?
-
最好避免使用环境变量。
-
“在编译时检查环境变量是否存在”,它将在构建时,在您的工具链中。
-
编译只是编译的过程,构建是整个过程,从某些情况下的VS解决方案生成到链接。
标签: c++ visual-studio environment-variables compile-time