gcc编译记录
目录
1 使用apt安装
原文:https://www.codenong.com/cs106399531/
- 加入并更新下载源(否则在sudo时可能找不到4.8版本) sudo vim /etc/apt/sources.list
- 在sources.list文件的最下面添加如下代码
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe - 更新源
sudo apt-get update
-
查看是否已经有gcc-4.8的下载源
apt-cache policy gcc-4.8
-
安装gcc g++
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8 -
更新默认gcc、g++(注意指令最后的20不能丢)。这个是为了设置系统gcc默认使用的版本,优先级最高表示最先使用。
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
sudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-9 50
sudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-9 50 -
如果需要更改gcc的版本
sudo update-alternatives –config gcc
-
查看当前gcc版本
gcc -v
2 编译安装
- 下载源码并解压。
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
tar -xvf gcc-9.3.0.tar.gz
cd gcc-9.3.0
- 安装必要的工具。
./contrib/download_prerequisites
- 创建文件夹并编译。
mkdir gcc-build
cd gcc-build
../configure --prefix=/home/rui/software/myInstalled/gcc-930 --disable-multilib --enable-languages=c,c++
make -j64
make install
- 启用新的gcc。将如下的内容添加到环境变量文件
~/.bashrc
或者~/.zshrc
中。
export PATH=/home/rui/software/myInstalled/gcc-930/bin:$PATH
export LD_LIBRARY_PATH=/home/rui/software/myInstalled/gcc-930/lib:$LD_LIBRARY_PATH
export MANPATH=home/rui/software/myInstalled/gcc-930/share/man:$MANPATH
- 验证。
gcc -v
3 报错解决
- make时如下错误
./../gcc-aarch64-sve-acle-branch/gcc/hwint.h:62:5: error: ## error "Unable to find a suitable type for HOST_WIDE_INT"
## error "Unable to find a suitable type for HOST_WIDE_INT"
^
In file included from ../../gcc-aarch64-sve-acle-branch/gcc/hash-table.h:243:0,
from ../../gcc-aarch64-sve-acle-branch/gcc/coretypes.h:441,
from ../../gcc-aarch64-sve-acle-branch/gcc/c/c-lang.c:23:
../../gcc-aarch64-sve-acle-branch/gcc/statistics.h:25:2: error: ## error GATHER_STATISTICS must be defined
## error GATHER_STATISTICS must be defined
解决办法:去除CPLUS_INCLUDE_PATH设置
export CPLUS_INCLUDE_PATH=
zstd.h: No such file or director
sudo apt install -y libzstd-dev