
私は Ubuntu/Linux ベースのシステムを初めて使用します。バイナリの 1 つを分析するには、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
デフォルトでは で実行されます/bin/sh
。Ubuntu では、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 ディレクトリを削除して、アーカイブを再度解凍します。)