3

在 Mac 10.5 上使用 xcode 通过 libtool 和 ar 通过命令行创建一个静态库都会生成一个 libMainProject.a 文件,但是,当尝试使用 libtool 生成的文件链接到 xcode 应用程序时,我最终会收到多条消息,例如

“project1 的 vtable 引用自:libMainProject.a(project1.o) 中的 _ZTV27project1$non _lazy _ptr”

使用 ar one 完全没问题,并且链接正确。我尝试在链接时向 libtool 添加 -c 选项,但这似乎没有影响。所以我想我的两个选择是

1) 找出导致 ar 和 libtool 版本之间符号差异的原因,并使 libtool 生成相同的信息。

2) 让 xcode 使用 ar 而不是 libtool 来生成静态库。

任何想法或建议将不胜感激。

提前致谢。

4

1 回答 1

1

我建议使用ar. 你最终会得到这些*.o文件。然后使用gobjdump(您可能必须自己从 MacPorts/fink/homebrew 安装)查看*.o文件中的内容并比较两个版本。

于 2010-01-07T00:58:23.223 回答