【问题标题】:osm2pgsql Protobuf not Found: Centososm2pgsql Protobuf 未找到:Centos
【发布时间】:2015-07-27 18:22:44
【问题描述】:

问题:

我有一个从源代码安装的程序。当我运行 ./configure 时,它停止说 “找不到 protobuf 开发库”,但是,protobuf 已安装在我的系统上。

我如何在运行 ./configure 时指定这些库的路径?

我要安装的程序是 CentOS 6.6 上的 osm2pgsql。

【问题讨论】:

  • 根据您从源代码安装的程序,它可能在安装时有一个 --with-lib-name=/path/to/lib/ 选项。简而言之,它取决于您要安装的内容。
  • 也许你的问题是你没有安装protobuf dev 包?它与安装 protobuf 库不同。见launchpad.net/ubuntu/+source/protobuf
  • 不幸的是,我已经安装了protobuf-devel。我拉起./configure --help,它说使用PROTOBUF_LIB 变量设置路径。我按照他们的指示将变量指向正确的路径,但它仍然无法正常工作。我输入的完整命令:./configure PROTOBUF_LIB=/usr/lib64/
  • 答案可能不在protobuf-devel 中,而是在您尝试使用的配置脚本(未指定)中。大多数错误消息都会显示在生成的config.log 文件中。

标签: linux makefile configure


【解决方案1】:

更新:

幸运的是,我解决了这个问题。

发生了什么?:

osm2pgsql 使用 pkg-config 指向依赖库。在 CentOS 7 pkg-config 上使用此目录 /usr/share/pkgconfig/。在这个目录中有不同程序的.pc 文件。 pkg-config 使用这些文件来显示某些程序的库所在的位置。当您从包管理器或源安装 protobuf 时,安装不会自动让 pkg-config 通过 .pc 知道库的位置文件。

解决方法:

从他们的 git 页面的源代码安装 protobuf。运行 make install 后,克隆目录中会有几个 .pc 文件。您需要将这些放在/usr/share/pkgconfig 中。为此,请在克隆目录中运行以下命令:

sudo cp protobuf.pc* /usr/share/pkgconfig/
sudo cp protobuf-lite.pc* /usr/share/pkgconfig/

结论:

哒哒!现在回到你的 osm2pgsql 安装文件夹并重新运行 ./configure

【讨论】:

    猜你喜欢
    • 2014-08-15
    • 1970-01-01
    • 2019-09-25
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2011-12-08
    • 2014-08-31
    相关资源
    最近更新 更多