是否有可能覆盖运行检测标志make/configure/cmake检测体系结构优化级别并覆盖它?覆盖GCC编译标志
例如的./configure & 使将检测到现代的CPU与SSE例如,我想重写,并设置:当GCC编译一个.cpp文件,它总是使用-march = i586
这可能吗?谢谢!
是否有可能覆盖运行检测标志make/configure/cmake检测体系结构优化级别并覆盖它?覆盖GCC编译标志
例如的./configure & 使将检测到现代的CPU与SSE例如,我想重写,并设置:当GCC编译一个.cpp文件,它总是使用-march = i586
这可能吗?谢谢!
的./configure --help
将帮助您
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的开头。
您可以使用导出CC & CXX指向您的gcc包装脚本,但我已经看到脚本对'if CC =='gcc“'作出断言,这会断裂。
谢谢。我正在寻找更全球化的方法。构建服务器需要重建一个包含大量模块(> 30)的大型仓库,我最多不想改变每一步......而是在** - march = i586 **处强制** gcc **。 ..如果可能的话。有时使用** cmake **而不是配置 – Hhut
实际上,您可以更具体地了解您的任务吗?这听起来像你正在写一个数据包管理器。你确定你想要这样的优化吗? – Maquefel
我检出一个包含多个模块的中间件存储库,我做一个* make all *,然后得到一个中间件lib/include包,其中包含可用于(相关)项目的所有中间件。但是现在,目标平台已经发生了变化,所有事情都需要用** - march = i586 **来构建。我很想覆盖所有进一步的gcc/g ++调用使用** - march = i586 ** – Hhut