热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在构建共享库时,.libs/alloc.o中的重定位R_X86_64_32无法应用于.rodata.str1.8段

在64位Linux系统上编译GCC时,可能会遇到一个错误,即在构建共享库过程中,`.libs/alloc.o`文件中的重定位`R_X86_64_32`无法应用于`.rodata.str1.8`段。这一问题通常与目标文件的地址空间限制有关,需要通过调整编译选项或修改源代码来解决。具体来说,可以尝试使用`-fPIC`选项以生成位置无关代码,或者检查相关对象文件的链接方式。

在64位linux上编译gcc有可能会出现

.libs/alloc.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC


这个时候找到configure 文件,

在类似这个位置修改

echo make CC=$GCCPATCH/bin/gcc -fPIC

即可。


推荐阅读
author-avatar
朝朝宝宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有