【发布时间】:2017-09-17 17:05:23
【问题描述】:
根据 CMake 文档
https://cmake.org/cmake/help/v3.3/command/set.html
一个人做得到
set(ENV{<variable>} <value>)
但这给出了结果
set(ENV{FOO} foo)
message("variable is $ENV{FOO}")
在配置时
variable is foo
但是在 Linux 命令下
echo $FOO
变量未设置。
编辑:
这是问题的部分解决方案,即设置$PATH,以便用户首先列出CMAKE_INSTALL_PREFIX
set(file_sh ${CMAKE_CURRENT_BINARY_DIR}/path.sh)
set(path "${CMAKE_INSTALL_PREFIX}:$ENV{PATH}")
file(WRITE ${file_sh} "#!/usr/bin/env bash\n")
file(APPEND ${file_sh} "export PATH=\"${path}\"")
execute_process(COMMAND chmod a+x ${file_sh} RESULT_VARIABLE res)
这会创建这个文件
#!/usr/bin/env bash
export PATH="/install/prefix/path:/other/path"
稍后可以在 bash 终端上执行
source path.sh
【问题讨论】:
-
你在哪里打电话给
echo $FOO? -
@arrowd 'echo $FOO' 在 linux bash
-
运行
cmake之后?您不能从子进程更改父 (bash) 环境。
标签: linux cmake environment-variables