是否可以覆盖make/configure/cmake中的运行时检测标志以检测架构优化级别并覆盖它?
例如./configure & make将使用 SSE 检测现代 CPU,例如,我想覆盖它并设置:当 gcc 编译 .cpp 文件时,它将始终使用-march=i586
这可能吗?谢谢!
是否可以覆盖make/configure/cmake中的运行时检测标志以检测架构优化级别并覆盖它?
例如./configure & make将使用 SSE 检测现代 CPU,例如,我想覆盖它并设置:当 gcc 编译 .cpp 文件时,它将始终使用-march=i586
这可能吗?谢谢!
./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
每个配置脚本都不同,没有灵丹妙药。如果您想可靠地覆盖 gcc 编译器标志,请为 /usr/bin/gcc 创建一个包装脚本并添加/修改您想要的标志,并将您的脚本放在 PATH 的开头。
您可以使用 export CC & CXX 指向您的 gcc 包装器脚本,但我见过以 'if CC == "gcc"' 为谓词的脚本,这会中断。