Ios Xcode:链接器抱怨缺少用于测试的符号,但不用于运行
在iOS项目中,我使用的是第三方供应商提供的库。实际上,部分是提供的,因为其中一部分是GPL许可的 另一部分,我必须重新实施。完成后,它可以在设备上正确编译、运行和存档 但当我尝试运行单元测试(或在模拟器上运行)时,事情就出了问题。链接器抱怨缺少符号。两个函数,定义为Ios Xcode:链接器抱怨缺少用于测试的符号,但不用于运行,ios,xcode,linker,lldb,Ios,Xcode,Linker,Lldb,在iOS项目中,我使用的是第三方供应商提供的库。实际上,部分是提供的,因为其中一部分是GPL许可的 另一部分,我必须重新实施。完成后,它可以在设备上正确编译、运行和存档 但当我尝试运行单元测试(或在模拟器上运行)时,事情就出了问题。链接器抱怨缺少符号。两个函数,定义为 extern int my_function(); Undefined symbols for architecture x86_64: "_my_function", referenced from: 事实上,他们失踪了
extern int my_function();
Undefined symbols for architecture x86_64:
"_my_function", referenced from:
事实上,他们失踪了!这两个函数在我的代码中没有定义
但是,我仍然可以正常编译、链接和运行。经过一番研究,我发现引用这些函数的代码可能被编译器以某种方式剥离了,因为这是一条永远不会被采用的路径(可以在编译时确定)
我的第一反应是检查优化,但每次运行时它都设置为-O0
我可能应该修复它并定义这些函数,但我很好奇。是什么让链接器在测试/模拟器构建中抱怨,而不是在设备上运行?您是否有机会包含第三方库所依赖的外部库?不,所有内容都应该在源代码中。但是,这两个功能肯定是缺失的。