重写GCC编译标志

重写GCC编译标志,gcc,Gcc,是否可以覆盖make/configure/cmake中的运行时检测标志,以检测并覆盖架构优化级别 例如,/configure&make将检测到带有SSE的现代CPU例如,我想覆盖它并设置:当gcc编译.cpp文件时,它将始终使用-march=i586 这可能吗?谢谢 /configure--帮助 我会帮助你的 Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compi

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

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

这可能吗?谢谢

/configure--帮助

我会帮助你的

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
一些有影响的环境变量:
CXC++编译命令
CXFLAGS C++编译器标志
LDFLAGS链接器标志,例如,-L,如果在
非标准目录
要传递给链接器的LIBS库,例如-l
CPPFLAGS(目标)C/C++预处理器标志,例如-I if
在非标准目录中有标题
CC编译器命令
CFLAGS C编译器标志
cppc预处理器
CXCPP C++预处理器

CFLAGS=“”./configure

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


您可以使用export CC&CXX指向您的gcc包装器脚本,但我见过一些脚本,它们的谓词为“if CC==“gcc”,这将导致中断。

谢谢。我在寻找一种更全球化的方法。构建服务器需要重建一个包含大量模块(>30)的大型存储库,我最多也不想改变每个步骤。。。相反,将gcc强制为-march=i586。。。如果可能的话。有时使用cmake而不是Configure实际上,您可以更具体地说明您的任务吗?听起来好像你在写一个包管理器。你确定你想要这样的优化吗?我检查了一个包含多个模块的中间件存储库,我做了一个makeall,然后得到一个中间件lib/include包,其中包含所有可用于(相关)项目的中间件。但是现在目标平台已经改变,所有东西都需要使用-march=i586构建。我希望覆盖所有进一步的gcc/g++调用以使用-march=i586export CFLAGS=“-march=i586”否?这不是stackoverflow问题-这是一个与*nix的基础知识相关的问题。在启动批处理生成命令之前,是否执行
export CFLAGS=“
?如何命名此包装器脚本:应与应调用的gcc可执行文件同名?