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 这个参