1. 程式人生 > 其它 >MNN安裝報錯集錦

MNN安裝報錯集錦

技術標籤:深度學習

1.MNN下載地址

https://github.com/alibaba/MNN

2.參考博主

https://blog.csdn.net/ab0902cd/article/details/99691443

2_1.出現問題:

versions.proto:1:10: Unrecognized syntax identifier "proto3". This parser only recognizes "proto2".

參考博主

https://blog.csdn.net/AmbitiousRuralDog/article/details/80774518

推測因為protobuf版本過低導致。

安裝protobuf參考博主

https://www.jianshu.com/p/6bf604c9748a

2_1_1.出現問題:

執行sudo ldconfig時出現以下錯誤:
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link
參考博主

https://www.jianshu.com/p/b308d3bbde8a

找到問題:

Linux-Ubuntu16安裝MNN-未成功,暫停_第1張圖片

輸入命令:

sudo ln -sf /usr/local/cuda/lib64/libcudnn.so.7.1.3 /usr/local/cuda/lib64/libcudnn.so.7

繼續執行sudo ldconfig後,沒有彈出錯誤

2_1_1問題解決

繼續將博主

https://www.jianshu.com/p/6bf604c9748a

的流程走完,安裝完protobuf。

protoc--version命令可以檢視protobuf版本。

2_1問題解決。

繼續參考博主

https://blog.csdn.net/ab0902cd/article/details/99691443

2_2.出現問題

Protobuf compiler version 3.6.0 doesn't match library version 2.6.1
Call Stack (most recent call first):
CMakeLists.txt:64 (find_package)

此問題曾經在安裝ncnn的時候出現過,當時直接講protobuf版本改回了2.6.1,ncnn能用了,但是模型轉換沒有成功。。

此處的意思是:protobuf編譯器版本與庫版本不匹配。

參考博主

http://www.manongjc.com/article/60995.html

注意加上sudo即:sudo vim /etc/ld.so.conf

sudo ldconfig

export LD_LIBRARY_PATH=/usr/local/lib

重新嘗試,問題沒有解決。

還原回去。

回看博主

https://www.jianshu.com/p/6bf604c9748a

裡面說了一句話,(如果findpackage報錯注意新增lib和include到環境變數)。

於是嘗試在環境變數裡面加入lib和include。

新增: PATH=/usr/local/protobuf/include:$PATH

新增: PATH=/usr/local/protobuf/lib:$PATH

重新嘗試,問題沒有解決

應該時自己還不會新增環境變數,嘗試如下:

sudo ldconfig
sudo gedit ~/.bashrc
新增:export PATH=/usr/local/protobuf/bin:$PATH
     export LD_LIBRARY_PATH=/usr/local/protobuf/lib:$LD_LIBRARY_PATH
source ~/.bashrc

2_2問題解決

重新回到博主

https://blog.csdn.net/ab0902cd/article/details/99691443

執行到cd build && cmake .. && make -j4這一步。此時不會出現剛才的錯誤了。

2_3出現問題

undefined reference to `google::protobuf::internal::RegisterAllTypes(google::protobuf::Metadata const*, int)'
source/tensorflow/libtensorflow.so: undefined reference to `typeinfo for google::protobuf::internal::MapFieldBase'
懷疑還是protobuf的問題,2_2問題中還是沒有新增include,這裡嘗試新增一下。

參考博主

https://www.cnblogs.com/image-eye/archive/2011/08/20/2147133.html

但是不會填寫,尤其時“:”後面該怎麼寫。應該時追加的意思,就是將環境變數加入,而不是將原有的全部替換。

我的修改是

export PATH=/usr/local/protobuf/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/protobuf/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/usr/local/protobuf/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/local/protobuf/include:$CPLUS_INCLUDE_PATH

重新嘗試,問題沒有解決

卡在此處進行不下去了,ubuntu16.04上預設安裝的protobuf的版本是2.6.1,決定重新安裝回2.6.1,然後安裝兩個。

版本相容安裝。

2_3.protobuf重新安裝回2.6.1.

重灌繼續參考博主

https://www.jianshu.com/p/6bf604c9748a

protoc--version檢視版本

2_4.參考博主

https://blog.csdn.net/qq_16775293/article/details/81119375

進行安裝protobuf3.4.1

等待很長時間後,profile環境變數也配置了。protoc--version檢視版本,顯示只有2.6.1.

重新嘗試,問題沒有解決

刪除環境變數和該資料夾

2_5.細心是多麼的重要,一開始博主

https://blog.csdn.net/ab0902cd/article/details/99691443

就已經提到了protobuf安裝教程。嘗試該教程。

嘗試的是protoc3.4.0版本

在執行sudo make install的時候,出現一個warning

libtool: warning: relinking 'libprotoc.la'

此處先不去理會。

重新嘗試,問題沒有解決

重新裝回2.6.1,參考博主

https://www.jianshu.com/p/6bf604c9748a

2_6.採用相容的模式,新增軟連結

還是先參考博主

https://blog.csdn.net/qq_16775293/article/details/81119375

相容模式安裝

參考博主

https://blog.csdn.net/qq_39024800/article/details/82751323

加個軟連結