Debian Bookworm 12.2下GNAT Community Edition正确安装方法咨询
GNAT Community Edition 安装与链接错误解决
错误原因分析
链接报错中的.relr.dyn是glibc 2.34版本引入的新重定位段,你安装的GNAT 2021自带的ld(来自gcc 10.3.1)不支持该段格式。如果你的系统使用了更高版本的glibc(比如Debian 12的glibc 2.36),就会出现旧版ld无法识别系统libc文件的兼容性问题,导致链接失败。
解决方案
1. 替换GNAT工具链的ld为系统版本
系统自带的ld通常适配当前glibc版本,操作步骤:
- 备份GNAT自带的ld:
mv /usr/local/GNAT/2021/libexec/gcc/x86_64-pc-linux-gnu/10.3.1/ld /usr/local/GNAT/2021/libexec/gcc/x86_64-pc-linux-gnu/10.3.1/ld.bak - 创建软链接指向系统ld:
ln -s /usr/bin/ld /usr/local/GNAT/2021/libexec/gcc/x86_64-pc-linux-gnu/10.3.1/ld - 重新执行
gprbuild tst.gpr即可正常构建
2. 安装适配系统glibc的GNAT版本
如果你的系统是较新的Debian/Ubuntu发行版,建议下载GNAT 2023及以上版本的社区版,这些版本的gcc工具链已支持.relr.dyn段,从根源避免兼容性问题。
3. 正确安装GNAT Community Edition的标准步骤
- 选择与系统glibc版本匹配的安装包:优先选对应发行版的适配包,或确保工具链版本支持当前系统的glibc
- 执行安装脚本:运行下载的二进制安装包,按提示选择安装路径(默认
/usr/local/GNAT/xxx) - 配置环境变量:将GNAT的bin目录添加到PATH(可写入
~/.bashrc或~/.zshrc永久生效):export PATH=/usr/local/GNAT/2023/bin:$PATH - 验证安装:
gnat --version gprbuild --version - 测试项目:创建简单的Ada项目,用
gprbuild构建确认正常
内容的提问来源于stack exchange,提问作者Kapturak
相关产品推荐
相关产品推荐

