c++ - 使用 CMake 安装时永久存储环境变量

标签 c++ cmake installation

我正在尝试将路径环境变量存储到我的程序在运行时需要的一些配置文件的位置,但在安装编译程序之前我不知道位置。

我的想法是使用以下内容:

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/

相关文章:

C++,无法从so库访问包含的头文件

python - 在 python(或其他)中读取的 C++ 数据文件输出格式的大小效率更高?

cmake - CMake 占位符如何工作?

c++ - 运行 Qt hello world 时进程退出代码 0xC0000135

windows - 选择安装程序时,我是否需要 MSI 文件?

wxpython - 在 Ubuntu 12.04 上安装 wxPython

c++ - OpenCV 2.4 不支持 distanceTransform 格式

c++ - C++ 中的运算符 new 和 delete

cmake - 如果 CMAKE_BUILD_TYPE 为空,C/C++ 构建会发生什么?

javascript - node.js v.0.8 缺少配置文件