Ubuntu16.04系统自带的protobuf版本为 2.6.1
通过 locate 可以看到 /usr/lib/x86_64-linux-gnu/ 路径下面 会有 libprotobuf-lite.so.9 libprotobuf-lite.so.9.0.1
libprotobuf.so.9 libprotobuf.so.9.0.1等so文件,其中 libprotobuf-lite.so.9 和 libprotobuf.so.9 是文件链接。
这两个包主要是通过 sudo apt install libprotobuf-lite9v5 和 sudo apt install libprotobuf9v5来安装的(注意不是libprotobuf-dev 这个包安装时仅会安装头文件和一个 libprotobuf.so 的空链接)
按照protobuf的官方的说明编译并安装protobuf3.6.1
运行:
$ ./autogen.sh
$ ./configure --prefix=/usr (--prefix指定来安装目录到/usr/lib。然后进行编译和安装,缺省会安装/usr/local/lib,但是有些ubuntu系统默认不能ld这路径,需要去配置)
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.
安装完成后在 /usr/lib/ 路径下面就有 libprotobuf-lite.so.17 libprotobuf-lite.so.17.0.0 libprotobuf.so libprotobuf.so.17 libprotobuf.so.17.0.0 等文件
问题总结
【问题1】: 在./configure 时用 --prefix 这个参

本文详细记录了在Ubuntu 16.04上从2.6.1升级到protobuf 3.6.1的过程中遇到的问题,包括编译安装过程、旧版本库冲突以及错误处理。在升级后,由于库文件的冲突导致系统出现问题,如桌面环境无法正常启动。解决方案包括避免卸载系统默认库,接受新旧版本共存,并确保应用程序正确链接到新版本库。最后,作者不建议通过更换不稳定源来直接安装新版本,以防破坏系统稳定性。
最低0.47元/天 解锁文章
1661

被折叠的 条评论
为什么被折叠?



