gpt4 book ai didi

cmake - Clion 或 cmake 看不到环境变量

转载 作者:行者123 更新时间:2023-12-03 23:22:55 40 4
gpt4 key购买 nike

我正在使用 CLion IDE、Cmake 并尝试使用 CERN ROOT 库编写 Hello world。

CMakeLists.txt :
message(STATUS $ENV{ROOTSYS})
~/.bashrc :
export ROOTSYS="$HOME/tools/root-build/"
在 CLion 中构建期间 $ENV{ROOTSYS}由于某种原因是空的。但是$ENV{PATH}返回正确 $PATH .

我做错了什么?

最佳答案

来自 .bashrc 的变量 不是 通过。

转到文件 -> 设置 -> 构建、执行、部署

对于 Clion 2017.2+

enter image description here
enter image description here

对于老克里昂

enter image description here

点击通行证系统并...

enter image description here

如果您想在 C++ 运行时读取环境变量,例如使用 std::getenv然后
它不会工作,因为我们为 添加了环境变量CMAKE 不适用于运行时。

您可以添加这样的变量:
enter image description here

然后在你的代码中:

std::filesystem::path getRootConfigPath()
{
// std::getenv can return nullptr and this is why we CAN'T assign it directly to std::string
const char* path = std::getenv("TEST_CONFIG_DIR");
gcpp::exception::fail_if_true(
path == nullptr, WHERE_IN_FILE, "No such environment variable: ${TEST_CONFIG_DIR}");

gcpp::exception::fail_if_true(std::string_view{path}.empty(),
WHERE_IN_FILE,
"Missing ${TEST_CONFIG_DIR} environment variable");

const std::filesystem::path testConfigDir{path};
gcpp::exception::fail_if_false(std::filesystem::exists(testConfigDir) &&
std::filesystem::is_directory(testConfigDir),
WHERE_IN_FILE,
"Invalid ${TEST_CONFIG_DIR} dir:" + testConfigDir.string());
return testConfigDir;
}

来源 gcpp::exception::fail_if_true

在运行单元测试时以更友好的方式执行此操作的另一种方法是将此变量添加到模板中。

所以每当你点击:
enter image description here

这样的变量已经存在。

enter image description here

关于cmake - Clion 或 cmake 看不到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37662130/

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