配置编译时强制覆盖(例如CXXFLAGS等)

配置编译时强制覆盖(例如CXXFLAGS等)

我想知道如何强制,举一些真实的例子:

  • CFLAGS='-O2 -march=native'
  • CXXFLAGS='-O2 -march=native'
  • CC='gcc-10'
  • CPP='gcc-10 -E'
  • CXX='g++-10'

configure在我的例子中,当为 Transmission 3.00 BitTorrent 客户端运行脚本时?

编辑该configure文件确实看起来有点棘手,更重要的是不是普遍可用的。

答案1

运行时覆盖变量的记录方式configure是将其值指定为参数configure,如下所述./configure --help

`configure' configures transmission 3.00 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

就你而言,

./configure --disable-cli --disable-mac --disable-daemon --enable-utp --with-gtk --with-crypto=openssl CFLAGS='-O2 -march=native' CXXFLAGS='-O2 -march=native' CC=gcc-10 CPP='gcc-10 -E' CXX=g++-10

configure默认情况下考虑环境变量, 这就是为什么设置它们也有效。在这两种情况下,设置的值都保存在config.status(如果变量被标记为“珍贵”)并考虑在内config.status --recheck。 Autoconf 文档建议指定变量作为参数而不是依靠环境。

答案2

对于我的 Transmission 3.00 来说,有效的方法(但不是官方方法)就是简单地在前面添加这些内容,./configure就像这样,我不会改变我的命令并将其完整放置:

CFLAGS='-O2 -march=native' CXXFLAGS='-O2 -march=native' CC='gcc-10' CPP='gcc-10 -E' CXX='g++-10' ./configure --disable-cli --disable-mac --disable-daemon --enable-utp --with-gtk --with-crypto=openssl

相关内容