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

     2023-02-23     19

关键词:

【中文标题】CMAKE 使用环境变量而不将它们作为命令行参数传递?【英文标题】:CMAKE use environment variables without passing them as commandline arguments? 【发布时间】:2013-07-23 18:15:36 【问题描述】:

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

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

例如在我的环境中:

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

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

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

SET(CMAKE_CXX_COMPILER, $ENVCMAKE_CXX_COMPILER)

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

IF($ENVCMAKE_CXX_COMPILER)
    SET(CMAKE_CXX_COMPILER, $ENVCMAKE_CXX_COMPILER)
    MESSAGE("CMAKE_CXX_COMPILER $CMAKE_CXX_COMPILER")
ENDIF()

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

谢谢

【问题讨论】:

逗号不应该在那里(在任何一种情况下)。此外,编译器设置是 CMake 中的一种特殊野兽。你会发现$ENVXYZ 工作正常。 【参考方案1】:

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

SET(CMAKE_CXX_COMPILER $ENVCMAKE_CXX_COMPILER)

【讨论】:

如何使用 CMake 获取命令行输出作为参数?

】如何使用CMake获取命令行输出作为参数?【英文标题】:HowtouseCMaketogetcommandlineoutputasanargument?【发布时间】:2020-02-2014:40:58【问题描述】:我正在使用CMake构建linux模块模式,所以我在ubuntu上检索头文件,目前我正在docker中运行... 查看详情

如何测试使用的命令行参数?

】如何测试使用的命令行参数?【英文标题】:Howcanyoutestcommandlineargumentsused?【发布时间】:2022-01-1703:03:10【问题描述】:我有一些代码可以创建配置,添加一些环境变量,然后,如果它们存在,添加一些命令行参数。这里的目... 查看详情

如何访问对象而不将其作为参数传递?

...有没有办法自动装配需要经常重新实例化的对象?我正在使用Netflix的DGS+springboot框架,并且基本上将用户身份验证详细信息存储在为每个请求创建的自定义上下文中。由于需要大量重构,我试图避免在方法签名中添加上下文。例... 查看详情

snakemake:将命令行参数传递给脚本。(代码片段)

我正在使用Snakemake的一些python脚本来自动化工作流程。这些脚本使用的是命令行参数,虽然我可以将它们替换为snakemake.input[0],snakemake.output[0]等,我不愿意这样做,因为我也希望能够在Snakemake之外使用它们。解决这个问题的一个... 查看详情

在 Visual Studio C# 的调试会话中将环境变量指定为命令行参数

...时间】:2011-03-0705:25:09【问题描述】:我想在调试会话中使用环境变量作为命令行参数。所以ProjectProperties->Debug->Commandl 查看详情

iOS如何显示具有资产库路径的图像而不将它们绑定到实例变量

...iables【发布时间】:2014-11-2814:01:40【问题描述】:我可以使用资产库路径获取图像并通过AssetLibrary将其显示在视图中,但图像被分配给控制器的实例变量。现在,我想在视图中显示多个图像,因此我不应该 查看详情

将 0 作为命令行参数传递的问题

...么我可以传递除0之外的任何值来覆盖默认值1。以下是我使用的\'test.pl 查看详情

如何将列表的所有元素作为函数的参数传递而不将列表作为参数传递

】如何将列表的所有元素作为函数的参数传递而不将列表作为参数传递【英文标题】:Howtopassallelementofalistasparameterofafunctionwithoutpassingthelistasargument【发布时间】:2022-01-0200:04:59【问题描述】:这是一个例子:deftestB(argA,argB):#USERC... 查看详情

在 ApiController 操作中获取当前用户,而不将用户 ID 作为参数传递

】在ApiController操作中获取当前用户,而不将用户ID作为参数传递【英文标题】:Getthecurrentuser,withinanApiControlleraction,withoutpassingtheuserIDasaparameter【发布时间】:2014-03-0405:27:38【问题描述】:我们如何在安全的ApiController操作中获取... 查看详情

使用命令行参数创建结构向量

】使用命令行参数创建结构向量【英文标题】:Creatingavectorofstructsusingcommandlinearguments【发布时间】:2014-05-0400:53:13【问题描述】:我在理解创建这个结构向量的过程时遇到了一些麻烦。我将文件作为参数传递给程序,并使用它... 查看详情

如何从用户传入的参数中去掉引号

...号脱去的简单办法由三种,它们的功能相近,只是各自的使用场合不同,可以处理大多数的情况。1-1、如果字符串存在于命令行参数%1中,可以使用%~1脱去第一对外侧引号,如果没有外侧引号则字符串不变;1-2、如果字符串存在... 查看详情

将 SASS/SCSS 变量导出到 Javascript,而不将它们导出到 CSS

】将SASS/SCSS变量导出到Javascript,而不将它们导出到CSS【英文标题】:ExportSASS/SCSSvariablestoJavascriptwithoutexportingthemtoCSS【发布时间】:2019-12-2311:06:11【问题描述】:背景考虑以下_variables.scss文件:/*Defineallcolours*/$white:#fff;$black:#000;$g... 查看详情

环境变量与命令行参数(代码片段)

文章目录环境变量与命令行参数一、环境变量1、查看环境变量的命令2、Linux下常见的环境变量I.PATHII.HOMEIII.PWDIV.LANGV.SHELLVI.HISTSIZE3、查看环境变量的函数4、本地变量本地变量相关命令二、命令行参数命令行参数的作用环境变量与... 查看详情

参数传递策略 - 环境变量与命令行

...件路径、管道名称、TCP/IP地址等。到目前为止,我一直在使用命令行将这些传递给正在启动的应用程序。我必须解析main中的命令行并将参数指向需 查看详情

devenv 命令行 构建环境变量/参数

...【发布时间】:2011-10-2419:40:24【问题描述】:我目前正在使用脚本来构建我的项目,脚本类似于devenv.exemySolution.sln/Rebuild"Release|Win32"/Project"myproject"效果很好,我希望能扩展它。我想要做的是传递一个环 查看详情

如何使用 argparse 将列表作为命令行参数传递?

】如何使用argparse将列表作为命令行参数传递?【英文标题】:HowcanIpassalistasacommand-lineargumentwithargparse?【发布时间】:2021-10-1004:05:11【问题描述】:我正在尝试将列表作为参数传递给命令行程序。是否有argparse选项将列表作为选... 查看详情

cmake中set/unset的使用(代码片段)

   CMake中的set命令用于将普通、缓存或环境变量(normal,cache,orenvironmentvariable)设置为给定值,其格式如下:指定<value>...占位符(placeholder)的此命令的签名需要零个或多个参数。多个参数将作为分号分割的list连接,... 查看详情

将 IPython 变量作为参数传递给 bash 命令

】将IPython变量作为参数传递给bash命令【英文标题】:PassingIPythonvariablesasargumentstobashcommands【发布时间】:2016-05-3112:57:40【问题描述】:如何从Ipython/Jupyter笔记本执行bash命令,将python变量的值作为参数传递,如下例所示:py_var="f... 查看详情