
저는 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
이것이 내가 얻는 것입니다:
비슷한 문제를 발견했습니다여기 스택 오버플로에서
"libtool" 파일을 조작하려고 시도했지만 성공하지 못했습니다. 어떤 제안이 있으십니까?
답변1
./libtool
좋아요, 제공된 것이 bash 스크립트이기 때문에 문제가 있는 것 같습니다 .
$ file ./libtool
./libtool: Bourne-Again shell script, ASCII text executable
하지만 make
기본적으로 를 사용하여 실행합니다 /bin/sh
. 우분투에서는 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
이것은 실제로 귀하가 제공한 링크에서 논의한 것과 동일한 문제입니다. 특히이 답변
이 문제를 해결하는 방법은 여러 가지가 있습니다. IMHO 가장 깔끔한 방법은 구성 스크립트에 Makefile의 기본 SHELL
변수를 재정의하도록 지시하는 것입니다.
./configure SHELL=/bin/bash --prefix=/usr/local/libpng
make
sudo make install
(새로 설치하여 다시 시작하는 것이 좋습니다. 즉, libpng-1.6.14 디렉토리를 삭제하고 아카이브의 압축을 다시 푸는 것입니다.)