Linux动态库加载路径
问题
按如下步骤在Ubuntu上编译安装Google protobuf
$ ./configure $ make $ make check $ make install
运行
protoc --version
出现找不到动态库的错误
protoc: error while loading shared libraries: libprotobuf.so.7: cannot open shared object file: No such file or directory原因
原因是protobuf的默认安装位置是 /usr/local,/usr/local/lib?不在系统默认的 LD_LIBRARY_PATH 里。这个问题protobuf 的 README.txt 写得很清楚,怪自己不仔细。
?
解决参考文章里面提供了几种方法,这里只使用其中的一种。
1. 创建文件?/etc/ld.so.conf.d/libprotobuf.conf 包含以下内容
/usr/local/lib
2. 运行命令
sudo ldconfig
这时再运行 protoc --version 就可以得到版本号了
$ protoc --versionlibprotoc 2.4.1参考linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/ld.so.conf 或者 使用-R选项)Shared Library Search Paths