Xcode 靜態連結庫找不到的問題
如果你的 Xcode 程式編譯正常,但執行時遇到類似的報錯:
+[NSCharacterSet SVGWhitespaceCharacterSet]: unrecognized selector sent to class
這種問題是因為靜態連結庫中的 Objective-C 的 Category 符號沒有被連結進你的程式。你可以用下面的命令看看符號有沒有被連結:
nm Cli | grep SVGWhitespaceCharacterSet
網上說你可以在Other Linker Flags
裡增加-ObjC
,但如果你的專案還要用別的非 OC 的庫,則會報錯,例如你同時使用 C++ 庫。正確的做法是,在Other Linker Flags
裡增加
-force_load $(PROJECT_DIR)/...../libxxx.a
-force_load
後面跟絕對路徑。