2

我有一些必须用 g++4.5 编译的共享对象,我希望它们能够链接到使用 g++4.1 和 g++4.2 编译的应用程序中。

据我了解,他们不能保证不同版本的 libstdc++ 将相互兼容,因此如果不进行一些更改,这将无法正常工作。

除了在目标机器上安装较新版本的 g++ 及其相关库之外,是否有一种标准方法可以做到这一点?

4

2 回答 2

1

只要架构相同,并且您没有使用新版本独有的功能,共享对象应该可以正常工作。

于 2011-05-04T19:20:28.467 回答
0

只是测试它并查看它是否有效(使用不匹配的 GCC 版本)怎么样?如果它有效,则无需为此烦恼任何特别的问题。也就是说,除非你在这里处理生命支持系统,但我猜不是。

如果 STL 容器等通过库的 API 传递,您在实践中更有可能遇到问题。如果库仅在内部使用 STL,它可能“正常工作”。

于 2011-05-04T19:19:39.210 回答