【发布时间】:2014-06-27 14:58:25
【问题描述】:
我正在尝试使用 GCC 4.9.0 构建一个与 libstdc++ 向后兼容的二进制文件。根据 GCC 的 ABI Policy and Guidelines 和 Options Controlling C++ Dialect,命令行选项 -fabi-version 应该可以解决问题;但是,无论我设置哪个版本,我仍然会从比所需版本更新的版本中导入符号,如下所示:
$ objdump -T binary | grep GLIBCXX_3.4.20
00000000 DF *UND* 00000000 GLIBCXX_3.4.20 _ZSt24__throw_out_of_range_fmtPKcz
我已经尝试过 -fabi-version=1 到 -fabi-version=5(ABI 版本 5 对应于 GCC 4.6,它保证存在于目标系统上),但这些导入一直在结果文件中结束。
我该如何解决这个问题?由于其他原因,我不能选择回到旧的 GCC 版本。
【问题讨论】:
-
我在另一个问题中发布了一个可能的解决方案:stackoverflow.com/questions/25979778/…