编译 libpng 1.6.14 失败

编译 libpng 1.6.14 失败

我是 Ubuntu/Linux 系统的新手。我需要编译 libpng 1.6.14 来分析它的一个二进制文件。我正在运行:

tar -xvf libpng-1.6.14.tar.xz
cd libpng-1.6.14
sudo bash configure --prefix=/usr/local/libpng   //is running fine without errors
sudo make install

这是我得到的:

错误 2,很多东西没有找到

我发现了类似的问题在 Stack Overflow 上

我尝试操作“libtool”文件,但没有成功。有什么建议吗?

答案1

好的,问题似乎是因为提供的./libtool是 bash 脚本,

$ file ./libtool
./libtool: Bourne-Again shell script, ASCII text executable

make默认使用 来执行它,在 Ubuntu 中,默认情况下/bin/sh它会符号链接到shell:dash

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Apr  4 10:27 /bin/sh -> dash

并且dash不支持非 POSIX 字符串连接+=

$ dash -c 'foo+=bar'
dash: 1: foo+=bar: not found

这确实是您提供的链接中讨论的同一个问题,特别是这个答案

有很多方法可以解决这个问题 - 在我看来最干净的方法是告诉 configure 脚本覆盖 Makefile 的默认SHELL变量:

./configure SHELL=/bin/bash --prefix=/usr/local/libpng
make
sudo make install

(我建议您重新开始全新安装,即删除 libpng-1.6.14 目录并再次解压档案。)

相关内容