如何仅构建GCC后端并规避不必要依赖?求具体步骤
仅构建GCC后端的具体步骤
先说明下:GMP、MPFR、MPC这些库是GCC前端(比如浮点运算优化、中间代码处理)的依赖,后端(目标架构的代码生成、适配部分)本身并不需要它们。咱们只要通过配置限制编译范围,只保留目标后端组件,禁用依赖这些高精度库的模块,就能绕开你遇到的报错。
操作步骤
准备GCC源码
拉取对应稳定版本的GCC源码(这里以gcc-13为例):git clone git://gcc.gnu.org/git/gcc.git cd gcc git checkout releases/gcc-13注意:别执行
contrib/download_prerequisites脚本,这个脚本会自动下载GMP/MPFR/MPC,正是我们要避免的。创建独立构建目录
推荐用out-of-tree构建,避免弄脏源码目录:mkdir build && cd build关键配置命令
根据你的目标后端架构调整参数,下面是通用模板(以构建riscv64后端为例,如果是x86_64后端可以省略--target参数):../configure \ --prefix=/usr/local/gcc-backend \ --enable-only-targets=riscv64-unknown-linux-gnu \ --enable-languages=c \ --disable-bootstrap \ --disable-libgomp \ --disable-libquadmath \ --disable-libssp \ --disable-libstdcxx \ --disable-multilib \ --with-gmp=no \ --with-mpfr=no \ --with-mpc=no \ --with-isl=no参数解释:
--prefix:指定后端的安装路径,可自行修改--enable-only-targets:只编译指定架构的后端,排除其他无关目标--enable-languages=c:仅保留C前端(GCC必须至少有一个前端才能构建,C前端的依赖最少)--disable-bootstrap:禁用自举编译,避免触发对GMP等库的依赖检查--disable-*:禁用所有无关的库和功能,进一步减少依赖项--with-*=no:明确告诉configure不需要这些依赖库,跳过对应的检查
编译安装
- 编译(根据你的CPU核心数调整
-j后的数字,比如8核就写-j8):make -j8 - 安装:
sudo make install
- 编译(根据你的CPU核心数调整
验证是否成功
安装完成后,检查目标后端是否正常可用(以riscv64为例):
/usr/local/gcc-backend/bin/riscv64-unknown-linux-gnu-gcc -v
输出里应该能看到目标架构的后端信息,不会再出现GMP/MPFR相关的报错。
内容的提问来源于stack exchange,提问作者29_MOHAMMED_ZUHAIB
相关产品推荐
相关产品推荐

