在编辑了我的Xcode 5.1.0源文件后,我突然收到此链接器错误:
0 0x1059b5f93 __assert_rtn + 144
1 0x105a1d7f5 ld::tool::OutputFile::compressedOrdinalForAtom(ld::Atom const*) + 281
2 0x105a1e469 ld::tool::OutputFile::addDyldInfo(ld::Internal&, ld::Internal::FinalSection*, ld::Atom const*, ld::Fixup*, ld::Fixup*, ld::Fixup*, ld::Atom const*, ld::Atom const*, unsigned long long, unsigned long long) + 2261
3 0x105a14496 ld::tool::OutputFile::generateLinkEditInfo(ld::Internal&) + 1322
4 0x105a0f952 ld::tool::OutputFile::write(ld::Internal&) + 116
5 0x1059b6c40 main + 1012
A linker snapshot was created at:
/tmp/keytech PLM-2014-03-05-101905.ld-snapshot
ld: Assertion failed: (0 && "dylib not assigned ordinal"), function compressedOrdinalForAtom, file /SourceCache/ld64/ld64-236.3/src/ld/OutputFile.cpp, line 3454.
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我绝对不知道这意味着什么?
我已经尝试过:
我也排除了一些最新更改的代码。没有结果。 谷歌错误没有找到任何有用的信息。
有人有想法吗?
答案 0 :(得分:5)
在我的情况下,在我将Build Settings“OSX Deployment Target”从“10.7”切换到“10.8”后,链接器错误消失了。
答案 1 :(得分:0)
这看起来像open bug at llvm,已传递给Apple(因此处于黑洞)。
似乎没有其他信息可用,因此您需要退回开发(通过git)以找出触发它的内容,然后将您收集的任何信息提供给llvm(通过bug报告者)。
不是答案,但我不相信这个问题有答案......
答案 2 :(得分:0)
我有一段时间没有这个bug。 我最终修复它的方法是尝试在Xcode 4.6中编译 一旦我调整了我的项目进行编译,我得到了更有帮助的错误:
Undefined symbols for architecture x86_64:
“_ Gestalt”,引自: _GetOS in main.o
这促使我添加了coreservices框架(这是我正在添加的第三方框架所需要的),从那里,我的项目在xcode 5&上编译得很好。 6
所以 - 这可能不是你需要的框架,但这种方法可能对你有帮助。
答案 3 :(得分:0)
我也碰到了这个,但仅限于发布版本。通过排除过程,我可以通过在Link-Time Optimization
下将NO
构建设置设置为LLVM_LTO = NO
(Apple LLVM – Code Generation
)来使发布版本正常工作。