如何修复“PKG_PROG_PKG_CONFIG:找不到命令”错误?

ken*_*enn 13 configure

我有 Ubuntu 13.10 32 位系统。最近,当我尝试通过运行进行编译时./autogen.sh./configure我得到

 PKG_PROG_PKG_CONFIG: command not found
Run Code Online (Sandbox Code Playgroud)

错误。我已经libtool安装了。我在usr/share/like 中有三个 aclocal 文件alocalaclocal-1.13并且aclocal-1.4

我该如何解决这个本地错误?

编辑:

前段时间我从源代码编译了最新版本的 automake 并安装了它,因为源代码需要最新版本的 automake 来运行配置过程。从那时起,每当我在源目录中运行标准./autogen/configure命令来生成时,makefile我都会得到

  PKG_PROG_PKG_CONFIG: command not found
Run Code Online (Sandbox Code Playgroud)

错误

  find /usr -name "pkg.m4"
Run Code Online (Sandbox Code Playgroud)

给我

  /usr/share/aclocal/pkg.m4
Run Code Online (Sandbox Code Playgroud)

  aclocal --print-ac-dir
Run Code Online (Sandbox Code Playgroud)

给我

  /usr/local/share/aclocal
Run Code Online (Sandbox Code Playgroud)

ste*_*ver 20

PKG_PROG_PKG_CONFIG变量指的pkg.m4是作为 pkg-config 包的一部分提供的宏,因此首先要检查 pkg-config 是否已安装并且宏文件位于默认位置(当然是可读的)

dpkg -l pkg-config

ls -l /usr/share/aclocal/pkg.m4
Run Code Online (Sandbox Code Playgroud)

如果检查出来了,那么问题就变成了为什么aclocal没有找到它?您可以aclocal使用--print-ac-dir开关检查在哪里配置为查找第三方 m4 文件,即

aclocal --print-ac-dir
Run Code Online (Sandbox Code Playgroud)

如果这与上面的位置不同,则表明您的系统上存在非标准版本的 automake - 如果您无法解决该问题,则可能的解决方法是ACLOCAL_PATH在运行 autogen 之前设置或导出环境变量。 sh 脚本例如

ACLOCAL_PATH=/usr/share/aclocal ./autogen.sh
Run Code Online (Sandbox Code Playgroud)

或者

export ACLOCAL_PATH=/usr/share/aclocal
./autogen.sh
./configure
Run Code Online (Sandbox Code Playgroud)

请参阅GNU automake 手册的宏搜索路径部分。