解決靜態庫檔案匯入 找不到問題

2021-07-09 12:41:57 字數 889 閱讀 4650

記錄一下:在匯入libbpush.a檔案時候,對照的官方的demon都正常的操作,報錯類似於

undefined symbols for architecture armv7:

"*********x", referenced from:

normalizedir(std::string&) in libbpush.a(***xx.o) .

. .這樣的錯誤,首先這是找不到.a檔案裡的方法實現 報的錯誤。 可以嘗試刪了重新新增;

如果還是這樣,再檢查frameworkpath 和:lirarysearchpath 這些刪除沒有作用的路徑,可以自己新增;

這裡要記錄一下 other link flags 的設定:它是填寫編譯引數的一項設定 一般會有-objc ,-all_load 

-force_load..

-objct :加了這個引數後,鏈結器就會把靜態庫中所有的objective-c類和分類都載入到最後的可執行檔案中

。-all_load  : 會讓鏈結器把所有找到的目標檔案都載入到可執行檔案中,但是千萬不要隨便使用這個引數!假如你使用了不止乙個靜態庫檔案,然後又使用了這個引數,那麼你很有可能會遇到ld: duplicate symbol錯誤 會造成一些衝突,因為不同的庫檔案裡面可能會有相同的目標檔案,所以建議在遇到-objc失效的情況下使用-force_load引數

-force_load :

所做的事情跟-all_load其實是一樣的,但是-force_load需要指定要進行全部載入的庫檔案的路徑,這樣的話,你就只是完全載入了乙個庫檔案,不影響其餘庫檔案的按需載入

使用-force_load 時候 現在other link flags中新增-force_load; 再 給上所要的.a 檔案的路徑.

最好在projects和targets中都配置

解決Linux下找不到 so庫檔案的問題

最近在執行某個程式時,報錯 error while loading shared libraries lib so.2.8 cannot open shared object file no such file or directory 經過查詢,在程式自帶的lib目錄下發現了這個包。所以只需要把這...

關於找不到庫檔案

系統 centos 6.3 有時我們執行某個程式時出現缺少庫檔案的報錯,如下 error while loading shared libraries libcrypto.so.10 cannot open shared object file no such file or directory 遇...

解決linux找不到動態庫的問題

動態庫即共享庫,說到linux找不到動態庫的問題,首先要了解動態庫的特點 動態庫把對一些庫函式的鏈結載入推遲到程式執行的時期。可以實現程序之間的資源共享。因此動態庫也稱為共享庫 將一些程式公升級變得簡單。甚至可以真正做到鏈結載入完全由程式設計師在程式 中控制 顯示呼叫 由上述中的第1點可知,動態庫並...