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

时间:2011-09-21 13:50:57

标签: c++ macos linker

我目前正在开发一个项目,该项目创建一个静态库和三个链接到该库的可执行文件。在我尝试在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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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