簡體   English   中英

為 iPhone 構建開源庫 (liblo)

[英]Building open source library (liblo) for iPhone

我有一個使用 liblo (liblo.sourceforge.net) 的 iPhone 項目。 我的項目在模擬器中運行良好,但是當我為設備構建時, ld失敗了:

ld: library not found for -llo

我懷疑這是因為我在下載 liblo 時剛剛運行了make install 我發現一個線程建議通過在make install之前運行./configure --host=arm-apple-darwin進行交叉編譯,但這似乎並沒有解決問題。

[/usr/local/lib]$ file liblo.dylib 
liblo.dylib: Mach-O dynamically linked shared library i386

有一個簡單的解決方案嗎?

這是為 OS 3.0 編譯的文件。 http://www.samvermette.com/files/liblo.a.zip

只需將它添加到您的 XCode 項目中,您就可以開始了!

這是 jkooker 配置腳本的更新版本,適用於 iOS 4: http://gist.github.com/519121

又要提這個了。。。

Xcode 12.3+ 已棄用通過 lipo 生成的手動鏈接的脂肪庫,以支持 XCFrameworks。 基本上,M1 mac 現在與 iDevices 共享相同的 arm64 arch,Xcode 無法判斷在 fat lib 中使用哪個 arch,因此在模擬器中運行時將無法鏈接 arm64 slice。 如果您僅在 M1 mac 上通過 Xcode 在設備上運行,它確實可以工作,但不將模擬器作為選項並不理想。

正如我在對@mikewoz 回答的評論中指出的那樣,我已經更新了 fat lib 腳本並使用了很多年。 我試圖使用這種方法並通過生成 XCFramework

xcodebuild -create-xcframework -library liblo-ios.a -library liblo-sim.a -output liblo.xcframework

......但是我無法讓它發揮作用。

最后,我選擇通過手動創建的 liblo static lib Xcode 項目自己構建 liblo 源。 這工作正常,只需要通過configure生成的 config.h 設置所需的定義,或者在 Xcode 項目上手動設置它們。 到目前為止,我選擇使用configure並設置以下定義: -DHAVE_CONFIG_H -DAC_APPLE_UNIVERSAL_BUILD -Qunused-arguments -fno-common -DPIC AC_APPLE_UNIVERSAL_BUILD定義用於啟用 config.h 中的編譯時結束檢查。 也就是說,我只在我的 M1 MacBook Pro 13 上測試過,所以我希望這種方法適用於英特爾機器。

如果有人需要可用的 liblo.xcodeproj,您可以在這里找到它: https://github.com/danomatika/PdParty/tree/master/libs/liblo

用於自動下載和配置 liblo 源的步驟在主庫 Makefile 中:https://github.com/danomatika/PdParty/blob/master/libs/Makefile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM