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
加个软链接