读书人

Linux动态库加载途径

发布时间: 2012-06-27 14:20:09 作者: rapoo

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

读书人网 >UNIXLINUX

热点推荐