创建 StaticLib 时格式错误的存档 TOC 条目

发布于 2024-12-05 21:06:16 字数 386 浏览 0 评论 0原文

我目前正在开发一个项目,该项目创建一个静态库和三个链接到该库的可执行文件。在干净的构建中,当我尝试在 OSX 10.7.1 上创建库时,它将正确构建。但是,如果它不是一个干净的构建,那么我会收到此错误。

ld: in ./libframework.a, malformed archive TOC entry for GameApp::~GameApp(), offset 222233108   is beyond end of file 3056 for architecture x86_64

如果我在收到此错误后进行干净的构建,则无需更改任何构建设置,它将顺利编译。链接错误似乎并不总是适用于同一条目。如果我注释掉析构函数,那么它只会引用另一个条目。

有什么想法吗?

I'm currently working on a project which creates a static library and three executables that link to this library. On a clean build when I try to create the library on OSX 10.7.1 it will build correctly. However if it's not a clean build then I get this error.

ld: in ./libframework.a, malformed archive TOC entry for GameApp::~GameApp(), offset 222233108   is beyond end of file 3056 for architecture x86_64

Without changing any build settings if I do a clean build after receiving this error then it will compile without issues. The linking error doesn't seem to always apply to the same entry. If I comment out the desctructor then it will just refer to another entry.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾城°AllureLove 2024-12-12 21:06:16

这里的错误是重新编译时需要更新静态库的目录。要解决此问题,可以将 -s 标志添加到 ar 中,或者可以在编译库之后但链接之前执行 ranlib。

The error here is that the table of contents of the static library need to be updated when recompiling. To fix this the -s flag can be added to ar or ranlib can be executed after compiling the library but before linking.

萤火眠眠 2024-12-12 21:06:16

我通过删除文件(/Users/ios5/Library/Developer/Xcode/DerivedData//Build/Products/Debug-iphonesimulator/.a)解决了该问题

I've fixed the issue by deleting the file (/Users/ios5/Library/Developer/Xcode/DerivedData//Build/Products/Debug-iphonesimulator/.a)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文