Xcode force_load不适用于模拟器构建

时间:2011-06-23 22:45:33

标签: objective-c xcode llvm

我正在使用Xcode 4和LLVM 2作为工作区,其中包含两个项目(A和B)。主项目(A)链接到构建静态库的另一个项目(B)的二进制文件。

项目B包含类别,因此为了正确链接到A,我设置了ObjC和all_load链接器标志。然而,这会引起问题,因为我使用的某些库中包含了不应加载的符号,所以我尝试在项目B的库文件中专门使用force_load。

-force_load $(TARGET_BUILD_DIR)/libB.a

这使得设备可以在设备上运行,但是在模拟器中应用程序崩溃,因为项目B中的类别没有被链接。

知道为什么force_load在设备和模拟器上的工作方式不同吗?

如果您需要更多详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:5)

尝试-Wl,-force_load,$(TARGET_BUILD_DIR)/libB.a; IIRC,这是Apple LLVM Compiler 2.0不尊重-force-load的已知问题。