Xcode:链接器抱怨缺少测试符号,但没有运行

时间:2015-03-25 13:36:49

标签: ios xcode linker lldb

在iOS项目中,我使用的是第三方供应商提供的库。好吧,实际上是部分提供的,因为它的一部分是在GPL许可下。

另一部分,我不得不重新实现。这已经完成,它可以在设备上正确编译,运行和存档。

然后我尝试运行单元测试(或在模拟器上运行),并且出错了。链接器抱怨缺少符号。两个函数,定义为

extern int my_function();

Undefined symbols for architecture x86_64:
  "_my_function", referenced from:

事实上,他们失踪了!这两个函数没有在我的代码中定义。

但是,我仍然可以正常编译,链接和运行。经过一些研究后,我发现引用这些函数的代码可能已被编译器以某种方式剥离,因为它是一条永远不会被采用的路径(并且可以在编译时确定)。

我的第一反应是检查优化,但每次运行时都设置为-O0

我应该解决这个问题,然后定义这些功能,但我很好奇。是什么让链接器在测试/模拟器构建中抱怨而不是在设备上运行?

0 个答案:

没有答案