使用protobuf编译onnx.proto过程中的一些问题总结

使用git clone下载protobuf的源代码,然后git checkout到branch2.7.0:

clipboard

编译protobuf,先在代码顶层目录执行./configure,然后执行make,成功后执行sudo ldconfig,重新加载动态库。

clipboard

经过试验发现,使用protoc编译onnx.proto,需要特别注意版本问题,使用3.5.1的版本,编译都会失败,而且中途会有提示gcc版本过低的错误信息,在4.9一下都不支持之类的信息,这个时候去升级gcc版本到了5.5,回来发现问题依然存在。最后使用的protoc版本是2.7.0,这是通过冲git上将master源代码下载下来,然后使用git chekout branch的方式,进行源代码编译安装完成的。

如果系统中原来通过pip或者apt-get之类的工具安装过protobuf,那么系统会在/usr/bin/下安装protoc,在/usr/lib/下安装有libprotbuf*等so文件,这个时候可以直接将这些文件全部rm -fr。因为linux搜索二进制文件和so文件的顺序是先搜索/usr/bin/, /usr/lib/,然后再搜索/usr/local/bin/, /usr/local/lib,而采用源代码编译、安装的protobuf工具会将这些二进制文件和so文件释放到/usr/local/bin和/usr/local/lib目录下,这个时候/usr/bin/以及/usr/lib下的protoc和libprotobuf*so已经被删除掉,所以就会到/usr/local/bin和/usr/local/lib下去寻找对应的文件。

与之相关的代码已经放到gihub上,下载

 

posted @ 2018-05-08 11:30  justinzhang  阅读(1820)  评论(0编辑  收藏  举报