You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译GCC-13源码触发删除构造函数错误,求配置及解决建议

GCC 13编译报错:已删除构造函数调用问题

问题场景

在编译GCC源码的releases/gcc-13分支时,执行make命令触发编译错误,具体信息如下。

错误日志

../.././gcc/rtl-ssa/accesses.cc:1422:24: error: call to deleted constructor of 'rtl_ssa::access_array_builder'
  access_array_builder builder (watermark);
                       ^        ~~~~~~~~~
../.././gcc/obstack-utils.h:79:28: note: 'obstack_watermark' has been explicitly marked deleted here
  DISABLE_COPY_AND_ASSIGN (obstack_watermark); 
                           ^
../.././gcc/rtl-ssa/accesses.cc:1465:24: error: call to deleted constructor of 'rtl_ssa::access_array_builder'
  access_array_builder builder (watermark);
                       ^        ~~~~~~~~~
../.././gcc/obstack-utils.h:79:28: note: 'obstack_watermark' has been explicitly marked deleted here
  DISABLE_COPY_AND_ASSIGN (obstack_watermark); 
                           ^
../.././gcc/rtl-ssa/accesses.cc:1514:23: error: call to deleted constructor of 'rtl_ssa::access_array_builder'
        access_array_builder builder (watermark);
                             ^        ~~~~~~~~~
../.././gcc/obstack-utils.h:79:28: note: 'obstack_watermark' has been explicitly marked deleted here
  DISABLE_COPY_AND_ASSIGN (obstack_watermark); 
                           ^
7 warnings and 3 errors generated.

当前使用的编译工具链

clang -version
clang version 4.0.0-1kord1 (tags/RELEASE_400/rc1)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

编译配置参数

./configure \
--host=aarch64-linux-gnu \
--enable-languages=c,c++,fortran,go \
--prefix=/home/.gccb/gcc-13 \
--enable-targets=aarch64-linux-gnu \
--with-gmp=/usr/local \
--with-mpfr=/usr/local \
--with-mpc=/usr/local

解决方向

  • 升级Clang版本:Clang 4.0.0是2017年的老旧版本,对现代C特性支持不足。GCC 13源码依赖较新的C标准,旧编译器无法正确处理obstack_watermark的禁用拷贝逻辑。建议升级到Clang 12+版本,或直接用系统自带的GCC编译GCC(更稳妥)。
  • 校验源码完整性:重新拉取releases/gcc-13分支代码,执行git fetch --tags && git checkout releases/gcc-13,确保无文件缺失或损坏。
  • 调整配置参数:
    • 删除--enable-targets=aarch64-linux-gnu,--host已指定目标架构,重复设置易引发冲突。
    • 检查GMP、MPFR、MPC版本:GCC 13要求GMP≥6.2.1、MPFR≥4.1.0、MPC≥1.2.1,版本过低则升级对应依赖库。
  • 切换编译工具链:若系统有GCC 7+版本,执行CC=gcc CXX=g++ ./configure [你的其他参数]重新配置,用GCC编译GCC可避免兼容性问题。

内容的提问来源于stack exchange,提问作者Michaelzh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:53:10