【问题标题】:Passing environment variables to autoconf's `./configure`将环境变量传递给 autoconf 的`./configure`
【发布时间】:2012-11-30 15:39:53
【问题描述】:

FOO=bar ./configure./configure FOO=bar 之间有什么区别,其中./configure 是autoconf 从configure.am 生成的脚本?我知道前者在运行脚本./configure之前将环境变量FOO设置为bar,而后者将字符串FOO=bar传递给./configure。我认为./configure 将其解释为(还记得吗?)将变量FOO 设置为等于bar,但除此之外,我不知道。特别是,以一种方式或另一种方式这样做有什么好处吗?

【问题讨论】:

    标签: environment-variables autotools configure autoconf


    【解决方案1】:

    将赋值作为参数传递给configure 可确保赋值在config.status 中可用,因此它将在config.status --recheck 上设置。这是将赋值作为参数的主要优点。请注意,当前的 autoconf 文档建议这样做而不是通过环境传递分配。旧版本的 autoconf 不允许将赋值作为参数进行配置,因此在运行旧的配置脚本时必须使用旧形式,而且习惯很难改掉,所以很多人继续使用该环境。但是,通过参数传递赋值是一个好习惯。

    【讨论】:

    • 另见AC_ARG_VAR文档中precious variables的定义。这就是configure 跟踪应该为--recheck 保留哪个环境变量,或者其更改应该使所使用的任何配置缓存无效的方式。
    猜你喜欢
    • 2013-12-29
    • 1970-01-01
    • 2021-09-05
    • 2020-03-27
    • 2017-03-30
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多