问题描述
-
在ubuntu 18.04 64位系统,安装了mtd-utils相关的依赖库:
sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config automake
-
由于mtd-utils通过pkg-config工具检查各个库是否正常安装,则设置pkg-config工具搜索路径:
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"
-
编译mtd-utils工具时,尝试通过运行: ./autogen.sh 或 autoreconf,报错如下:
PKG_PROG_PKG_CONFIG: command not found
原因分析:
-
PKG_PROG_PKG_CONFIG 宏定义是引用 pkg.m4 作为 pkg-config 软件包的一部分提供的,因此首先要检查的是 pkg-config 是否已安装,并且要确保该宏文件位于默认位置。具体操作如下:
-
首先确认 pkg-config 已安装(执行命令若显示相关的版本号,证明已成功安装):
pkg-config --version
-
再次查找 pkg.m4 所在位置:
find /usr -name "pkg.m4"
搜索路径如下:
/usr/share/aclocal/pkg.m4
-
最后查找 aclocal 所在位置:
aclocal --print-ac-dir
搜索路径如下:
/usr/local/share/aclocal
-
通过以上的查找方法你会发现
它们存在的位置并不一致
,这就是系统为什么总是提示 PKG_PROG_PKG_CONFIG 找不到的原因,也就表明了在系统上存在一个非标准版本的automake。
解决方案:
-通过以上的原因分析后,我们总算找到了问题发生的原因了。那如何解决该问题呢?解决方法如下:
-
方法1,将 /usr/share/aclocal/*.m4 文件都拷贝到 /usr/local/share/aclocal/ 目录下(
推荐
):sudo cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal/
-
方法2,手动配置 “aclocal 的安装路径” 到环境变量 ACLOCAL_PATH:
export ACLOCAL_PATH=/usr/share/aclocal
-
重新运行 ./autogen.sh 就可以编译通过了。