
我是基於 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
這就是我得到的:
我發現了類似的問題在 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
這確實與您提供的連結中討論的問題相同,特別是這個答案
有很多方法可以解決這個問題 - 恕我直言,最乾淨的方法是告訴配置腳本覆蓋 Makefile 的預設SHELL
變數:
./configure SHELL=/bin/bash --prefix=/usr/local/libpng
make
sudo make install
(我建議您重新開始全新安裝,即刪除 libpng-1.6.14 目錄並再次解壓縮存檔。)