tro*_*foe 8 xcode linker dependencies objective-c ios
TL; DR
如何使-ObjC
链接器标志针对特定的静态库而不是我链接的所有静态库,以避免未使用的目标文件与我的应用程序链接?
太长; 读了
因此,您正在开发一个新的iOS应用程序,并添加您自己开发的"objcutil"静态库,其中包含各种有用的Objective-C类(未实现为类别),以执行过去有用的各种事情.到目前为止,这么好,只有实用程序库中引用的那些目标文件才与应用程序链接.
然后,您决定集成要使用其他链接器标志的Google Maps SDK,并且实用程序库中的所有突然依赖都无法解析,因为您尚未将Xcode配置为链接到这些库.-ObjC
好的,我可以轻松地解决缺少的依赖项,但是现在您有不需要的未使用的目标文件和库依赖项,并且您希望比这更整洁.
那么你如何避免OCD过载?
ld
联机帮助页中可以参考:
-ObjC加载定义Objective C类或类别的静态归档库的所有成员.此选项不适用于动态共享库.
确定这样的答案是使用-force_load
,而不是-ObjC
作为-force_load
更集中.
因此,如果您按照说明将静态框架复制到应用程序项目目录中,那么WRT到Google Maps SDK,那么框架将位于项目根目录中,您可以从其他链接器标志中删除 并替换为-ObjC
-force_load GoogleMaps.framework/Versions/Current/GoogleMaps
:
没有什么需要改变.
对于其他库,您需要使用完整的静态库路径作为参数-force_load
.
归档时间: |
|
查看次数: |
958 次 |
最近记录: |