2011-09-21 78 views
2

我目前正在创建一个项目,该项目创建一个静态库和三个链接到此库的可执行文件。当我尝试在OSX 10.7.1上创建库时,它会正常生成。但是,如果它不是一个干净的构建,那么我会得到这个错误。创建StaticLib时出现格式错误的归档TOC条目

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

在不改变任何构建设置,如果我收到此错误,那么它会编译没有问题后做一个干净的构建。链接错误似乎并不总是适用于相同的条目。如果我注释掉这个destrtructor,那么它只会引用另一个条目。

任何想法?

+0

有人解决这个固定的问题与 1.关闭makefile中的并行构建选项 2.在ar之后和ld之前运行ranlib(请参阅http://code.swtch.com/plan9port/issue/81/devdraw-does-not-build- on-os-x-lion- latest) – istepura

回答

1

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

+0

在OSX 10.7.1上,尽管-s标志不起作用,尽管在手册页中写了什么。 – Nexus

+0

你能否详细解释一下如何解决它? –

0

我已经被删除的文件(/用户/用户的iOS5 /库/开发商/ Xcode中/ DerivedData//编译/产品/调试-iphonesimulator/ .a)中