Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Xcode:链接器抱怨缺少用于测试的符号,但不用于运行_Ios_Xcode_Linker_Lldb - Fatal编程技术网

Ios Xcode:链接器抱怨缺少用于测试的符号,但不用于运行

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: 事实上,他们失踪了

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

另一部分,我必须重新实施。完成后,它可以在设备上正确编译、运行和存档

但当我尝试运行单元测试(或在模拟器上运行)时,事情就出了问题。链接器抱怨缺少符号。两个函数,定义为

extern int my_function();

Undefined symbols for architecture x86_64:
  "_my_function", referenced from:
事实上,他们失踪了!这两个函数在我的代码中没有定义

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

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


我可能应该修复它并定义这些函数,但我很好奇。是什么让链接器在测试/模拟器构建中抱怨,而不是在设备上运行?

您是否有机会包含第三方库所依赖的外部库?不,所有内容都应该在源代码中。但是,这两个功能肯定是缺失的。