加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

针对iOS 8 SDK构建的静态库与Metal框架链接

发布时间:2020-12-14 17:50:48 所属栏目:百科 来源:网络整理
导读:在构建我使用iOS 8 SDK编写的静态库时,生成的库链接到金属框架: $otool -arch all -fl static library...Load command 12 519 cmd LC_LINKER_OPTION 520 cmdsize 32 521 count 2 522 string #1 -framework 523 string #2 Metal... 我认为这是通过UIKit;我不
在构建我使用iOS 8 SDK编写的静态库时,生成的库链接到金属框架:

$otool -arch all -fl <static library>

...
Load command 12
 519      cmd LC_LINKER_OPTION
 520  cmdsize 32
 521    count 2
 522   string #1 -framework
 523   string #2 Metal
...

我认为这是通过UIKit;我不直接链接它,’与标准库链接’是NO.这会导致Xcode 5.1.1与iOS 7出现问题,因为该框架不存在.使用Xcode 5构建静态库并不与金属链接,但我宁愿用Xcode的最新生产版本构建,在某些时候我将不得不解决这个问题.如何使用Xcode 6构建并解决Xcode 5用户的这个问题?

另见另一位有这个问题的开发人员,他只是使用了他所需的特定框架,但没有与Metal链接,但我不能这样做,因为我需要与UIKit链接:
https://github.com/card-io/card.io-iOS-SDK/issues/66
https://github.com/CocoaPods/CocoaPods/issues/2457

解决方法

戴夫来自card.io.即,上面引用的“另一个开发者”.

我们的解决方案应该适合您,在构建我们的静态库时设置为NO两个构建设置:CLANG_ENABLE_MODULES和CLANG_MODULES_AUTOLINK(a.k.a启用模块(C和Objective-C)和自动链接框架).

在禁用这些模块设置的情况下构建库将完全消除LC_LINKER_OPTION命令.

使用您的库的应用程序可以启用或不启用这些模块设置.应用程序(而不是您的库)必须包含UIKit.framework等,可以通过模块自动包含,也可以手动作为“链接库”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读