Autoconf, Libtool 및 정의되지 않은 AC_PROG_LIBTOOL


17

라이브러리를 만들려고하는데 README 지침은 configure.ac를 호출 한 다음 만들어야합니다.

불행히도, 나는 오류가 발생했습니다 :

configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

이제 libtool이 설치되어 있음을 알고 있습니다 (Scientific Linux 6.2 (업그레이드되지 않음)를 실행 중이며 yum --downloadonly를 사용하여 automake, autoconf, libtool 및 libtool-devel의 rpm을 얻을 수 있음).

이들은 설치되며 libtool은 현재 / usr / share / libtool에 있습니다. 그러나 autoconf가 찾을 수없는 것 같습니다.

모든 Google 검색 결과는 'install libtool'유형이므로 전혀 도움이되지 않습니다. 어떤 도움이나 안내라도 정말로 감사하겠습니다. rpm -i가 libtool을 가져 오는 것을 망쳤는지 / usr / share / libtool을 다른 곳에 연결 해야하는지 확실하지 않습니다.

답변:


11

다양한 포럼에서 인터넷을 통해 찾은 모든 "다시 설치"답변에 만족하지 않았으므로 비 스트로크 libtool을 설치하지 않고이 문제를 해결하기로 결심했습니다. (나는 CentOS 7에서 실행 중입니다.)

https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.html을 읽으면 머리 위에 전구가 켜집니다 . 매크로 파일을 찾는 데 사용되는 검색 경로는로 정의 된 경로 --prefix이며 기본적으로 보통 /usr/local입니다. /usr/local검색 /usr/local/share/aclocal-APIVERSION및에 설치 될 패키지의 autoconf입니다 /usr/local/share/aclocal.

CentOS7을 포함한 많은 배포판에서 7 개의 매크로 파일 libtools은 아래 /usr/share/aclocal가 아닌 아래에 설치 됩니다 /usr/local/share/aclocal. 결과적으로 빌드하는 패키지가 접두사를로 설정하면 찾을 수 없습니다 /usr/local.

이미 /usr/local/share/aclocal디렉토리 가있는 경우이 문제를 해결하려면 루트로 다음을 입력하십시오.

for file in argz libtool ltdl ltoptions ltsugar ltversion lt~obsolete
do
  ln -s /usr/share/aclocal/$file.m4 /usr/local/share/aclocal/$file.m4
done

/usr/local/share/aclocal디렉토리 가없는 경우이 문제를 해결하려면 루트로 다음을 입력하십시오.

ln -s /usr/share/aclocal /usr/local/share/aclocal

Voilà-문제가 해결되었습니다.


좋은 팁, CentOS 7 클러스터 에서이 문제를 해결했습니다. 프로젝트 와 함께 제공되는 경우 다른 옵션과 함께 포함 autogen.sh하도록 exec autoreconf라인을 수정할 수도 -I /usr/share/alocal있습니다. 이것이 실제로 실제로 한 것입니다. 그러면 configure스크립트 를 생성하기 위해 호출 된 실제 명령 이 autoreconf -v -f -i -I /usr/share/aclocal입니다.
TheDudeAbides 1

11

libtool을 설치해야합니다

우분투에서 :

sudo apt-get install libtool

redhat 기반으로 :

yum install libtool

5
문제는 이미 이것이 문제가 아니라고 말했다.
Kevin Panko

9

또한 비표준 디렉토리에 libtool 및 기타를 설치 했으며이 오류는 실제로 autoconf가 libtool의 m4 매크로를 찾을 수 없습니다. 예, libtool이 설치되지 않았을뿐만 아니라 비표준 설치 디렉토리에있을 수도 있습니다. 여기 내 수정이 있습니다.

export ACLOCAL_PATH=$HOME/install/libtool/share/aclocal:$ACLOCAL_PATH

내가 내 배치 .bash_profile


2
이를 수행하는 다른 방법 : autoreconf -I $ HOME / install / libtool / share / aclocal
Moraru Lilian

1

당신은 필요 다시 다음 단계를 수행하므로 오류를 수정하기 위해 그것을 :

1] 설치된 경우 현재 libtool을 제거하십시오. sudo apt-get purge libtool

2] 공식 웹 사이트에서 다운로드하십시오 https://www.gnu.org/software/libtool/

3] Untar it : tar -xzvf "name of the tar_file"

4] 폴더를 입력하고 다음을 입력하십시오 : ./configure && make

5] 설치 : sudo make install

그리고 당신은 완료되었습니다, 오류를 수정해야합니다!


0
configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

이제 libtool이 설치되어 있음을 알고 있습니다 ...

나는 이것이 일반적으로 libtool개발 장비가 설치되어 있지 않음을 나타냅니다 ( libtool설치 했을 수도 있음 ).

libltdl-dev데비안과 우분투에 설치해야합니다 . 그리고 libtool-ltdl-devel페도라에서.


다음은 패키지 검색입니다.

페도라

$ yum search libtool
======================== Name Exactly Matched: libtool =========================
libtool.x86_64 : The GNU Portable Library Tool
======================= Summary & Name Matched: libtool ========================
libtool-ltdl.x86_64 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl.i686 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl-devel.x86_64 : Tools needed for development using the GNU Libtool
                          : Dynamic Module Loader
libtool-ltdl-devel.i686 : Tools needed for development using the GNU Libtool
                        : Dynamic Module Loader
=========================== Summary Matched: libtool ===========================
mingw32-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader
mingw64-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader

우분투

$ apt-cache search libtool
autotools-dev - Update infrastructure for config.{guess,sub} files
libltdl-dev - System independent dlopen wrapper for GNU libtool
libltdl7 - System independent dlopen wrapper for GNU libtool
libtool - Generic library support script
libtool-bin - Generic library support script (libtool binary)
libtool-doc - Generic library support script
...
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.