3

是否可以覆盖make/configure/cmake中的运行时检测标志以检测架构优化级别并覆盖它?

例如./configure & make将使用 SSE 检测现代 CPU,例如,我想覆盖它并设置:当 gcc 编译 .cpp 文件时,它将始终使用-march=i586

这可能吗?谢谢!

4

2 回答 2

2

./configure --help

Will help you

Some influential environment variables:
CXX         C++ compiler command
CXXFLAGS    C++ compiler flags
LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
          nonstandard directory <lib dir>
LIBS        libraries to pass to the linker, e.g. -l<library>
CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
          you have headers in a nonstandard directory <include dir>
CC          C compiler command
CFLAGS      C compiler flags
CPP         C preprocessor
CXXCPP      C++ preprocessor

CFLAGS=" " ./configure

于 2013-08-07T12:04:58.337 回答
0

每个配置脚本都不同,没有灵丹妙药。如果您想可靠地覆盖 gcc 编译器标志,请为 /usr/bin/gcc 创建一个包装脚本并添加/修改您想要的标志,并将您的脚本放在 PATH 的开头。

您可以使用 export CC & CXX 指向您的 gcc 包装器脚本,但我见过以 'if CC == "gcc"' 为谓词的脚本,这会中断。

于 2013-12-05T14:52:42.293 回答