Xcode 6模拟器为_clock $ UNIX2003构建缺少的符号

时间:2014-09-17 14:43:12

标签: xcode unity3d ios-simulator ios8 xcode6

我正在为iOS8模拟器构建Unity项目。为模拟器移动Xcode 6 GM导致此链接器错误。不确定我是否遗漏了构建中的某些内容或者某些内容已损坏。有什么建议?完整的错误是:

架构i386的未定义符号:   “_clock $ UNIX2003”,引自:       libiPhone-lib.a中的_substanceHandleSwitchHard(apihandle.o)       libiPhone-lib.a中的_mainRenderProcess(mainrenderprocess.o) ld:找不到架构i386的符号

退出代码1

2 个答案:

答案 0 :(得分:8)

main.mm的末尾添加以下内容。

#include <time.h>

extern "C"
{
clock_t
clock$UNIX2003(void)
{
    return clock();
}
}

答案 1 :(得分:3)

clock $ UNIX2003是OS X提供的符号,不是iOS Simulator运行时的一部分。 iOS 总是符合,因此没有遗留(非$ UNIX2003)函数变体(提供与针对旧版OS X SDK构建的代码的二进制兼容性)。

您遇到的问题的常见原因是您有一个针对OS X SDK构建的目标文件或存档(libsomething.a),并且正在尝试将其链接到您的iOS Simulator可执行文件中。这是不受支持的,因为这两个平台在该层不是二进制兼容的。

您需要针对iOS模拟器SDK重建库(libsomething.a)。