Weak linking a framework to a static library
问题
我的项目安排如下:
-
应用程式
-
构架
- 静态库(通用代码)
-
构架
静态库将根据GoogleWebRTC框架启动。不幸的是,只能通过WebRTC.org将这种依赖性构建为框架。由于维护原因,他们删除了构建为静态库的功能。
题
静态库是否可以弱链接到GoogleWebRTC框架?
-
应用程式
-
构架
- 静态库(" CommonCode")
- GoogleWebRTC
-
构架
我想到的一些解决方案是:
-
在静态库中包括WebRTC头文件,并使用自定义modulemap进行构建,以使
include" 起作用。然后将库嵌入并链接到App目标中 - 以某种方式将GoogleWebRTC.framework转换为静态库,并将标头和二进制文件嵌入" CommonCode"静态库中
- 我...不记得我想到的另一个解决方案。当我记得时,我会更新此信息。
对于Google来说,删除静态目标是不幸的决定。
如果有帮助,您可以使用mesibo webrtc框架,该框架是使用修改后的忍者文件构建的静态框架。 唯一的缺点是,它不会像Google版本那样定期更新(通常会滞后一个月)。
https://github.com/mesibo/mesibowebrtcframework
您要做的就是从mesibo版本中复制
以下是您将在Mesibo和Google版本的WebRTC框架中看到的区别
Mesibo版本
1 2 3 4 5 6 7 | $ file WebRTC.framework/WebRTC WebRTC.framework/WebRTC: Mach-O universal binary with 4 architectures: [i386:current ar archive random library] [arm64] WebRTC.framework/WebRTC (for architecture i386): current ar archive random library WebRTC.framework/WebRTC (for architecture armv7): current ar archive random library WebRTC.framework/WebRTC (for architecture x86_64): current ar archive random library WebRTC.framework/WebRTC (for architecture arm64): current ar archive random library |
和谷歌版本
1 2 3 4 5 6 | $ file WebRTC.framework/WebRTC WebRTC.framework/WebRTC: Mach-O universal binary with 4 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64] WebRTC.framework/WebRTC (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64 WebRTC.framework/WebRTC (for architecture i386): Mach-O dynamically linked shared library i386 WebRTC.framework/WebRTC (for architecture armv7): Mach-O dynamically linked shared library arm_v7 WebRTC.framework/WebRTC (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64 |
让我知道您是否需要更多输入!