Linux-Ubuntu16安裝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

加個軟鏈接

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章