我正在尝试将路径环境变量存储到我的程序在运行时需要的一些配置文件的位置,但在安装编译程序之前我不知道位置。
我的想法是使用以下内容:
install(CODE "set(ENV{MY_CONFIG_PATH} \"${CMAKE_INSTALL_PREFIX}/MyConfig\"")
但是,我很快发现这并没有永久设置该环境变量,所以只要我运行程序并使用 std::getenv()< 检查
,我得到一个空指针。MY_CONFIG_PATH
的内容
我考虑过在编译时设置预处理器定义,但这也行不通,因为似乎 CMAKE_INSTALL_PREFIX
仅在安装过程执行时才被填充。
谁能推荐一个适用于 Windows 和 Unix 的巧妙解决方法?
最佳答案
由于 CMAKE_INSTALL_PREFIX
在配置时已知,您可以使用 configure_file
命令配置文件并将 CMAKE_INSTALL_PREFIX
的值插入到指定位置。
关于c++ - 使用 CMake 安装时永久存储环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41199584/