0

我有一个使用 gcc 在 AIX 上构建的第三方静态库。当我尝试使用 xlC AIX 编译器链接到该库时,我得到了各种未解析的符号。我相信这是由于名称修饰的差异。如果我使用 nm 命令从库中获取管理名称,那么使用 xlC 编译器构建二进制文件是否存在根本错误,前提是它可以找到它正在寻找的符号?我要找什么麻烦?

4

1 回答 1

3

这很可能不起作用;请参阅有关此的C++ Faq Lite问题。

C++ 比 C 复杂得多,而且还有很多其他的东西可能不兼容。

举几个例子,异常处理是否兼容?数据对象是否以相同的方式布局(在 C 中,顺序如所列,但在 C++ 中,它可以随访问说明符而变化)?虚拟表的工作方式相同吗?如何dynamic_cast处理?

名称修改的不同之处在于阻止您进行链接,但还有许多其他差异可能会咬到您。

您最好使用他们使用的 gcc 版本。这就是我曾经在类似项目中必须做的事情。

于 2010-11-10T20:37:35.563 回答