2013-08-07 126 views
1

是否有可能覆盖运行检测标志make/configure/cmake检测体系结构优化级别并覆盖它?覆盖GCC编译标志

例如的./configure & 使将检测到现代的CPU与SSE例如,我想重写,并设置:当GCC编译一个.cpp文件,它总是使用-march = i586

这可能吗?谢谢!

回答

0

的./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

+0

谢谢。我正在寻找更全球化的方法。构建服务器需要重建一个包含大量模块(> 30)的大型仓库,我最多不想改变每一步......而是在** - march = i586 **处强制** gcc **。 ..如果可能的话。有时使用** cmake **而不是配置 – Hhut

+0

实际上,您可以更具体地了解您的任务吗?这听起来像你正在写一个数据包管理器。你确定你想要这样的优化吗? – Maquefel

+0

我检出一个包含多个模块的中间件存储库,我做一个* make all *,然后得到一个中间件lib/include包,其中包含可用于(相关)项目的所有中间件。但是现在,目标平台已经发生了变化,所有事情都需要用** - march = i586 **来构建。我很想覆盖所有进一步的gcc/g ++调用使用** - march = i586 ** – Hhut

0

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

您可以使用导出CC & CXX指向您的gcc包装脚本,但我已经看到脚本对'if CC =='gcc“'作出断言,这会断裂。