重写GCC编译标志
是否可以覆盖make/configure/cmake中的运行时检测标志,以检测并覆盖架构优化级别 例如,/configure&make将检测到带有SSE的现代CPU例如,我想覆盖它并设置:当gcc编译.cpp文件时,它将始终使用-march=i586 这可能吗?谢谢 /configure--帮助 我会帮助你的重写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
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可执行文件同名?