![](/img/trans.png)
[英]Open Source library or simple method to detect iPhone 'bumping'?
[英]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.