[英]Weak linking a framework to a static library
我的項目安排如下:
靜態庫將根據GoogleWebRTC框架啟動。 不幸的是,這種依賴只能通過WebRTC.org構建為框架。 由於維護原因,他們刪除了構建為靜態庫的功能。
靜態庫是否可以弱鏈接到GoogleWebRTC框架?
我想到的一些解決方案是:
include "<WebRTC/WebRTC.h>
起作用。然后將庫嵌入並鏈接到App目標中 對於Google而言,刪除靜態目標是不幸的決定。
如果有幫助,您可以使用mesibo webrtc框架,該框架是使用修改后的ninja文件構建的靜態框架 。 唯一的缺點是,它不像Google構建那樣定期更新(通常會延遲一個月的同步)。
https://github.com/mesibo/mesibowebrtcframework
所有你需要做的就是復制WebRTC.framework/WebRTC
使用從mesibo版本,這不過是一個靜態庫,提取lipo -extract
並使用與自己的庫重新包裝lipo -create
。
以下是您將在Mesibo和Google版本的WebRTC框架中看到的區別
Mesibo版本
$ 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
和谷歌版本
$ 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
讓我知道您是否需要更多輸入!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.