我正在使用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在设备和模拟器上的工作方式不同吗?
如果您需要更多详细信息,请与我们联系。
答案 0 :(得分:5)
尝试-Wl,-force_load,$(TARGET_BUILD_DIR)/libB.a
; IIRC,这是Apple LLVM Compiler 2.0不尊重-force-load
的已知问题。