LD:(null):断言失败:(“dylib未分配序号”),函数compressedOrdinalForAtom,文件OutputFile.cpp,

时间:2014-04-05 08:28:40

标签: xcode linker clang llvm-clang

在编辑了我的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)

我绝对不知道这意味着什么?

我已经尝试过:

  • 删除衍生数据文件夹
  • 清理文件和构建文件
  • Cosed并重新打开Xcode
  • 确保没有链接器优化器处于活动状态:没有死代码剥离,没有链路时间优化。

我也排除了一些最新更改的代码。没有结果。 谷歌错误没有找到任何有用的信息。

有人有想法吗?

4 个答案:

答案 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 = NOApple LLVM – Code Generation)来使发布版本正常工作。