问题

按如下步骤在Ubuntu上编译安装Google Protocol Buffers

$ ./configure 
$ make
$ make check
$ sudo 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 不在Ubuntu系统默认的 LD_LIBRARY_PATH 里。这个问题 protobuf 的README.txt 写得很清楚,怪自己不仔细。

** Hint on install location **

By default, the package will be installed to /usr/local. However,
on many platforms, /usr/local/lib is not part of LD_LIBRARY_PATH.
You can add it, but it may be easier to just install to /usr
instead. To do this, invoke configure as follows:

./configure --prefix=/usr

If you already built the package with a different prefix, make sure
to run "make clean" before building again.

解决

参考文章里面提供了几种方法,这里只使用其中的一种。

方法1:
1. 创建文件 /etc/ld.so.conf.d/libprotobuf.conf 包含内容

/usr/local/lib

2. 运行命令

$ sudo ldconfig 

这时再运行 protoc --version 就可以得到版本号了

$ protoc --version 
libprotoc 2.4.1

方法2:

  1. vim /etc/profile
  2. export LD_LIBRARY_PATH=~/protobuf-2.5.0
  3. source /etc/profile
  4. $ sudo ldconfig

(LD_LIBRARY_PATH的这里,填写的是protobuf文件的位置)

最新文章

  1. Java_动态编译总结
  2. guava函数式编程
  3. POJ2570 Fiber Network(Floyd)
  4. 启用域中对象的"防止意外删除"功能
  5. linux基础命令学习(三)Vim使用
  6. [转载] codeblocks快捷键
  7. 【转】Mysql进程管理
  8. 【谷歌市场安装】Google Play 闪退问题解决
  9. Android基本控件之RadioGroup
  10. mysql服务器辅助选项
  11. Android What is Application
  12. input type file onchange上传文件的过程中,遇到同一个文件二次上传无效的问题。
  13. 用reg文件把便携版sublime text 3添加到右键菜单
  14. C语言,char类型变量不应与EOF直接比较
  15. 新浪云SAE 关于部分函数不能使用的做法
  16. python多进程那点事儿【multiprocessing库】
  17. MDX Cookbook 11 - 计算 Year Over Year 增长 (同比计算) ParallelPeriod
  18. python连接redis
  19. SpringBoot的文件上传
  20. iOS8 UICollectionView横向滑动demo

热门文章

  1. 打通Fedora19的vsftpd服务
  2. Centos6.6系统root用户密码恢复案例(转)
  3. window中findstr命令的用法
  4. Tomcat启动时选择加载项目
  5. Ubuntu 下iscsi initiator的安装与使用
  6. python之函数用法__getitem__()
  7. HTTP所承载的货物(图像、文本、软件等)要满足的条件
  8. eval、exec、execfile
  9. 使用loadrunner对https协议(单双向SSL)的web端性能测试 (转)
  10. linux 服务器删除大文件之后不释放存储空间的解决办法