gpt4 book ai didi

c++ - CMAKE 使用环境变量而不将它们作为命令行参数传递?

转载 作者:行者123 更新时间:2023-11-30 04:16:18 25 4
gpt4 key购买 nike

我在 RHEL5 上使用模块,我的机器上有各种版本的编译器/binutils。因此,我最终定义了指向我的工具的环境变量并相应地更新了路径,因此 RHEL5 附带的旧工具不在画面中。

有没有简单的方法让cmake加载相应的环境变量?

例如在我的环境中:

CMAKE_CXX_COMPILER=/some/other/compiler
CMAKE_LINKER=/some/other/linker

有没有办法让 cmake 捕获这些而不通过命令行将它们作为参数传递?

以下内容在我的 CMakeLists.txt 中对我不起作用

SET(CMAKE_CXX_COMPILER, $ENV{CMAKE_CXX_COMPILER})

毫不奇怪,以下内容也不起作用:

IF($ENV{CMAKE_CXX_COMPILER})
SET(CMAKE_CXX_COMPILER, $ENV{CMAKE_CXX_COMPILER})
MESSAGE("CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER}")
ENDIF()

可能是语法问题或者不是更新这样一个 cmake 变量的正确位置?当我通过命令行(例如 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})传递时它确实有效,但我不想那样做。

谢谢

最佳答案

没关系。这是一个语法错误:SET(CMAKE_CXX_COMPILER, $ENV{CMAKE_CXX_COMPILER}) 不应该有逗号。正确的语法是:

SET(CMAKE_CXX_COMPILER $ENV{CMAKE_CXX_COMPILER})

关于c++ - CMAKE 使用环境变量而不将它们作为命令行参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17817923/

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