在shell中设置make的GCC版本
Set GCC version for make in shell
我安装了两个gcc版本(同样适用于g++)。较新的是默认的:
/usr/bin/gcc # 4.9.2
/usr/bin/gcc-4.4 # 4.4.7
对于make命令,我想使用gcc-4.4/g++-4.4。
我试过这三种变体,但似乎都不起作用:
export CC="gcc-4.4"
export CPP="g++-4.4"
export CC=/usr/bin/gcc-4.4
export CPP=/usr/bin/g++-4.4
export gcc=/usr/bin/gcc-4.4
export g++=/usr/bin/g++-4.4
Makefile定义:
# Compiler Options
CC = gcc
CPP = g++
LD = g++
Makefile使用的编译器仍然是4.9.2。如何使用4.4.7?
GNU Make手册,6.10环境变量:
make
中的变量可以来自运行make
的环境。make在启动时看到的每个环境变量都被转换为具有相同名称和值的make变量。但是,在makefile中显式赋值,或者带有命令参数,会覆盖环境。(如果指定了-e
标志,那么来自环境的值将覆盖makefile中的赋值。但是不建议这样做。)
推荐的做法是在make
命令行上传递这些变量:
$ make CC=gcc-4.4 CPP=g++-4.4 CXX=g++-4.4 LD=g++-4.4
旁注:CXX
用于编译c++代码,而CPP
用于预处理。要么是makefile的作者混淆了CPP
和CXX
,要么是makefile确实使用了CPP
来生成依赖,这在过去十年左右的时间里是不必要的。
相关文章:
- 如何指示 cmake 的 gcc 版本?
- g++ libstdc++.so.6:从 4.8.5 升级到 GCC 版本 7.3.0 后找不到版本 'CXXABI_1.3.9'
- GCC:--静态链接到pthread的整个存档配方在最近的GCC版本中停止工作
- glibc 版本比 gcc 版本和 -wl,-rpath 不工作
- 三元运算符 '?:' 在 4.9.0 之前的 GCC 版本中推断出不正确的类型?
- 与NVIDIA链接的错误GCC版本
- 是否有编译器标志可以使较新的 gcc 版本像旧版本一样构建
- 不同的内在行为取决于 GCC 版本
- cblas_layout在MKL.H的GCC版本中未声明
- 将GCC版本升级到发行版附带的版本以外的版本是否有任何问题
- Linux 中 gcc 4.3 版本的编译问题
- GCC 版本/标志和 FAM
- 如何让 CMake 基于 GCC 版本通过 std=c++14/c++1y 或 c++17/c++1z?
- 我已安装的GCC版本是我已安装的RedHat开发人员工具集的背后
- GLIBCXX(libstdc++.so.6)与gcc版本之间的关系
- 如何获得GCC版本支持特定功能
- 如何更改Python GCC与GCC 4.8版本结合
- 使用 Eclipse 检查 GCC 版本
- gcc版本显示4.2.1,即使在安装了4.9(Homebrew)之后也是如此
- CMake发现错误的gcc版本