gpt4 book ai didi

cmake - 如何从缓存/CLion 解决方法中默认 CMake 环境变量

转载 作者:行者123 更新时间:2023-12-03 13:39:30 26 4
gpt4 key购买 nike

我正在尝试解决 CLion 无法处理环境变量的问题。

我所有的 CMake 文件都以这样的行开头:

cmake_minimum_required(VERSION 2.8.4)
include( $ENV{PROJECT_ROOT}/src/global_settings.cmake )
AssureOutOfSourceBuilds()

CLion 不知道如何读取提供全局包含的真实路径的环境变量。因此,CLion 完全无法找到当前目录之外的任何内容,并且会抛出错误。

有没有办法在 CMake 的缓存中为环境变量指定一个默认值?我相信 CLion 正确读取了 CMake 缓存。

关于如何解决 CLion 当前的弱点还有其他建议吗?谢谢。

最佳答案

事实证明,Clion 在 CMake 的缓存方面有一些不寻常的行为。至少在我的所有测试中,Clion 都会在我设置缓存变量(PROJECT_ROOT,上面)时不断重置或清除它,因此@sakra 的解决方案并不可靠。为了对他的所有努力公平,我仍然将其投票为答案。

不过,我终于找到了这个问题的解决方案,在这里:https://youtrack.jetbrains.com/issue/CPP-188#comment=27-899992

Clion 调用CMake 时实际设置环境变量是一个技巧。以下是上面那个链接的内容:

Here's an ugly work-around for people who need to pass environment or set cache variables via -D, in EAP build 140.1221.2. In Preferences -> Build, Execution, Deployment -> Toolchains, change the CMake executable from the bundled CMake executable to a shell script you define which calls an installed actual CMake executable.

Using the Bash shell, it might look like this:

#!/bin/sh
export SOMEPATH=/path/you/need
/usr/local/bin/cmake "$@"

关于cmake - 如何从缓存/CLion 解决方法中默认 CMake 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27928228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com