zoukankan      html  css  js  c++  java
  • 关于Linux动态库的加载路径

    问题

    按如下步骤在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文件的位置

  • 相关阅读:
    v-bind v-on
    v-cloak v-text v- html
    centos 6.9安装 jdk
    容器数据卷创建
    MySQL 索引设计概要
    SQL EXPLAIN解析
    数据库范式(1NF/2NF/3NF)
    MySQL索引原理及慢查询优化
    InnoDB 的记录结构和页结构
    mysql explain type详解
  • 原文地址:https://www.cnblogs.com/ilinuxer/p/5040051.html
Copyright © 2011-2022 走看看