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
找到問題:
輸入命令:
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
加個軟連結