天天看點

darknet2ncnn編譯中 libopencv 庫檔案找不到問題描述問題原因問題解決

問題描述

沒有直接從 github 上下載下傳 darknet2ncnn 包,用的是他人提供的包,包已經編譯好。解壓已經有 convert_verify 檔案。執行該檔案,問題描述如下:

[email protected]:~/zhouyi/darknet2ncnn-master# chmod +x convert_verify
[email protected]:~/zhouyi/darknet2ncnn-master# ./convert_verify data/yolov3-tiny_finger.cfg  data/yolov3-tiny_finger.weights example/zoo/yolov3-tiny_finger.param  example/zoo/yolov3-tiny_finger.bin finger.jpg
./convert_verify: error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory
           

可以看到,回報是 libopencv_core.so 找不到。

問題原因

opencv 我是直接使用如下指令安裝的。

sudo apt install libopencv-dev
           

具體安裝過程可以參考這個文章,https://blog.csdn.net/justidle/article/details/104948080。這個 opencv 版本為 3.2。

提供封包件用使用的是 2.4 版本。

問題解決

确定 opencv 庫檔案路徑

我是通過 find 來查的。

[email protected]:/# find -name libopencv_highgui*
./usr/lib/x86_64-linux-gnu/libopencv_highgui.a
./usr/lib/x86_64-linux-gnu/libopencv_highgui.so.3.2
./usr/lib/x86_64-linux-gnu/libopencv_highgui.so
./usr/lib/x86_64-linux-gnu/libopencv_highgui.so.3.2.0
           

可以發現我機器上 opencv 包所在路徑為 ./usr/lib/x86_64-linux-gnu/。

設定 lib 檔案路徑

1、修改 /etc/ld.so.conf 檔案,使用 sudo vi /etc/ld.so.conf,在該檔案中增加路徑 /usr/lib/x86_64-linux-gnu。如下圖。

darknet2ncnn編譯中 libopencv 庫檔案找不到問題描述問題原因問題解決

然後儲存檔案退出。

2、運作 sudo ldconfig,生效檔案。

3、修改 /etc/bash.bashrc 檔案,使用 sudo vi /etc/bash.bashrc,在最後一行增加如下圖所示的指令。

darknet2ncnn編譯中 libopencv 庫檔案找不到問題描述問題原因問題解決

然後儲存檔案退出。

4、運作 source /etc/bash.bashrc,使之生效。

繼續閱讀