天天看點

2021-05-21思路

linux加載動态庫時報符号未找到的記錄#

我遇見的這個問題的原因比較簡單,是我在編譯時本應該以動态庫方式(dlopen函數顯式加載)但是由于宏定義錯誤,導緻是靜态庫加載,導緻該問題出現;

思路

1.任務是将x86架構的動态庫移植到ARM架構下,使用nm -D 指令檢視兩個動态庫的符号表,發現了arm下的符号表比x86架構下的多了一些符号;這裡我們可以用ldd -r x.so 來檢視我們的動态庫是否正确;

2.然後定位到了是直接用了靜态加載的方式,這裡說明下,動态加載不會對聲明的符号導入到符号表中,但是靜态加載會;

注:嘗試了一些其他的方法,包括在編譯顯示增加-l來連接配接動态庫。