ARM 開發板運行程序:error while loading shared libraries: …/…/lib/libopencv_core.so: cannot open shared object file: No such file or directory的解決
好不容易交叉編譯好opencv和qt,且已經將需要的庫都移植到arm板(已搭建最小系統板)上,將編譯好的程序拷到板子上運行時,出現:error while loading shared libraries: …/…/lib/libopencv_core.so: cannot open shared object file: No such file or directory
參考其他博客,明白問題的所在是opencv的庫沒有配置好,
- 常規做法是:
修改/etc/ld.so.conf文件,有些系統沒有這個文件,而是/etc/id.so.conf.d目錄,這時在目錄下新建一個opencv.conf文件,在文件末尾添加:
yourOpencvPath/lib
比如我的就是/usr/local/arm/opencv-arm/lib。
然後在終端下:
ldconfig
保存退出,然後修改/etc/profile,末尾添加:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
保存退出,終端下:
source /etc/profile
涉及到權限問題的話,在前面加sudo。然後就應該可以了,但是我的不可以,運行後還是出現同樣的問題。
2.我的方法
其實很簡單,既然系統在…/…/lib下找不到文件,那提示缺少哪個.so文件,就把它複製到系統的/lib路徑下。
例如,在yourOpencvPath/lib路徑下,終端:
cp libopencv_core.so /lib