2011-11-15 6 views
4

저는 libtool에 새로운 것들이 있습니다. 내 프로젝트를 빌드하는 데 libtool 1.5가 필요하지만 시스템 (debian, squeeze)의 기본 libtool은 2.2라는 문제가 있습니다. 내가 한 것은 소스에서 libtool 1.5를 설치하고/usr/local에 넣었습니다. 내 PATH 변수는/usr/local/bin 경로를 먼저 선택합니다.configure가 libtool 사용자 정의 스크립트를 생성하는 방법은 무엇입니까?

autogen을 실행하면 libtool 1.5를 "인식"합니다. 그러나 configure 스크립트를 실행하면 버전 2.2의 libtool 스크립트가 내 빌드 디렉토리에 나타납니다. 나는 패키지 관리자를 사용하여 libtool 2.2를 제거한 이후로 어디에서 왔는지 전혀 모른다.

문제점을 해결하는 방법을 제안 해주세요. 빌드 폴더에서 libtool 스크립트는 어떻게 생성됩니까? ltmain.sh와 어떤 관련이 있습니까?

 
$ ./configure LIBTOOL=/usr/local/bin/libtool ... 

을하지만 고대에서 libtool을 사용하는 경우, 당신은 어떤 경우에 당신이해야 할뿐만 아니라, 고대의 autoconf를 사용하고있을 수 있습니다 :

감사합니다,

+2

첫 번째 문제는 1.5 사용 요구 사항입니다! 진실로, 현대 libtool이 왜 작동하지 않는지 알아 내고 그 문제를 해결하는 것이 훨씬 낫습니다. –

답변

7

뱌체슬라프 간단한 해결책이 될 수있다

,369 : 당신이 CSH 또는 그 변종을 사용하는 경우,

 
$ LIBTOOL=/usr/local/bin/libtool ./configure ... 

또는 : 할

 
$ env LIBTOOL=/usr/local/bin/libtool ./configure ... 

빌드 디렉토리의 libtool은 ltmain.sh에서 생성됩니다. config.status 파일 (configure에 의해 생성 됨)은 ltmain.sh를 입력으로 사용하여 libtool을 생성하는 sed 스크립트를 실행합니다. ltmain.sh는 autoreconf를 통해 libtoolize를 실행할 때 libtoolize에 의해 소스 디렉토리에 복사됩니다. autoreconf가 실제로/usr/local/bin에있는 libtool 1.5를보고 있으면 소스 디렉토리의 ltmain.sh는 /usr/local/share/libtool/ltmain.sh의 사본이어야합니다.

+0

답장을 보내 주셔서 감사합니다. 이제 상황이 더욱 분명 해지고 있습니다. – Vyacheslav

+0

btw, 다른 방법으로 문제를 해결할 수있었습니다 : "autoreconf --force --install --symlink" – Vyacheslav