首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用散列样式SYSV编译libstdc++

使用散列样式SYSV编译libstdc++
EN

Stack Overflow用户
提问于 2016-08-24 20:28:40
回答 1查看 1.6K关注 0票数 5

有没有办法用散列风格的SYSV来编译GCC的libstdc++而不是GNU/Linux?我有一个工具链(通过交叉工作台-ng),我使用它来编译我们公司的库,以便与非常广泛的Linux系统一起工作。

其中一个系统是一个非常老的RedHat,它只有SYSV哈希样式,当我用工具链编译一个C只库/程序时,它工作得很好,因为生成的二进制文件使用了SYSV。

但是,当我链接到libstdc++时,二进制自动更改为GNU/Linux风格,原因是libstdc++是作为GNU/Linux构建的,因此出现了问题。

在这个系统中运行二进制文件会给出错误。

代码语言:javascript
复制
ELF file OS ABI invalid

为了完整起见,我已经尝试了-Wl,-散列样式=sysv,但没有成功。

此外,我有另一个工具链的ARM系统,有相同版本的GCC,GLIBC等,但在这个工具链libstdc++使用SYSV,不知道为什么。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-28 08:52:31

尝试用https://gcc.gnu.org/install/configure.html配置选项重建GCC。根据GCC配置选项的文档:

-启用-gnu-唯一-对象 -禁用-gnu-唯一-对象 告诉GCC使用gnu_unique_object重定位C++模板,静态数据成员和内联函数局部静力学。默认情况下,在工具链中启用的汇编程序接受它和GLIBC 2.11或更高,否则禁用。

使用gnu_unique_object可能导致GNU在您的最终可执行文件中出现,这在旧红帽中是不受支持的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39132507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档