cmake无法读取我的一些环境变量

时间:2018-04-26 15:22:56

标签: cmake environment-variables

我有一个cmake脚本,试图通过读取环境变量来解析路径。运行该脚本时(我打印出环境变量的值),该消息为空(表示未成功读取env var)。但是对于其他环境变量(例如PATHCUDA_PATHWINDIR,...),这是有效的。但有些(例如OpenCV_DIRGOROOTVCPKG_ROOT,......)根本无法解决。它们都是机器范围的环境变量。

打印env var的行是

message("ENV VAR: " $ENV{SOME_VAR})

为什么有些env vars正确解析而其他env vars没有解决?

编辑:我使用cmake 3.11.1

在Windows 10上

Edit2 :澄清一些事情:从vcpkg包管理器调用cmake,所有环境变量都是系统范围和持久的(已验证;它们是在过去的某个时刻设置的,并且设置这些变量不是构建过程的一部分。)

1 个答案:

答案 0 :(得分:1)

在vcpkg中,为了提高稳健性并避免机器污染,构建在特殊的“干净”环境中执行。您可以通过命令vcpkg env --triplet <target triplet>获得virtualenv进入此环境。

如果要在干净环境中显式启用某些环境变量,可以在三元组文件(triplets\foo.cmake)中设置它们。

可能还有更好的方法来实现您的目标(在GitHub页面上打开一个问题)。