【发布时间】:2017-01-01 03:09:54
【问题描述】:
有什么方法可以用哈希样式 SYSV 而不是 GNU/Linux 编译 GCC 的 libstdc++?我有一个工具链(通过 crosstool-ng),我用它来编译我们公司的库,以便与非常广泛的 Linux 系统一起工作。
其中一个系统是一个非常古老的 RedHat,它只有 SYSV 哈希样式,当我使用工具链编译一个纯 C 库/程序时,它工作得很好,因为生成的二进制文件使用 SYSV。
但是,当我与 libstdc++ 链接时,二进制文件会自动更改为 GNU/Linux 样式,原因是 libstdc++ 是作为 GNU/Linux 构建的,因此存在问题。
在这个系统中运行二进制文件会报错
ELF file OS ABI invalid
为了完整起见,我已经尝试了-Wl,--hash-style=sysv,没有成功。
另外,我有另一个用于 ARM 系统的工具链,它具有相同版本的 GCC、GLIBC 等,但在这个工具链中 libstdc++ 使用 SYSV,不知道为什么。
提前致谢!
【问题讨论】: