2011-12-08 1 views
2

필자가 Module :: Build를 사용하여 Perl 모듈을 빌드한다고 가정하면, 필자는 Build.PL에 특정 시스템 라이브러리 전제 조건을 테스트하고 다음과 같이 종료하고 싶습니다. 그것들이 발견되지 않으면 에러. 컴파일러를 호출 할 때 필요한 전제 조건이 충족 될 수 있도록하는 가장 좋은 방법 인 것 같습니다. 링크가있을 때 편집을 실패하게 할 수는 있지만 건물을 찾기 전에 감지하는 것이 더 좋다고 생각합니다. 빌드 시스템이 컴파일 할 때 사용할 동일한 lib 디렉토리를 검색하는 것만으로도 충분하지만 Module :: Build에 일부 기능이 포함되어 있기를 기대하고 있습니다.Build.PL에서 시스템 라이브러리 전제 조건을 테스트하는 방법

필자의 경우, 필자는 libicu가 설치되어 있고 컴파일러에서 사용되는 libpath에서 사용할 수 있는지 확인하고자합니다.

+0

이것은 본질적으로 표준'./configure'가 C 프로그램에 대해하는 일을 실제로 시도하는 것입니다, 맞습니까? IIRC에서,'configure'는 문제의 라이브러리를 포함하는 스텁 C 프로그램을 생성 한 다음, 컴파일이 완료되었을 때 상태를 검사하여 컴파일하고 실행합니다. 그건 당신이 시도 할 수있는 것처럼 들리지만, 복잡한 측면에서는 조금 있습니다. – CanSpice

답변

5

Devel::CheckLib을 찾는 것처럼 들립니다. (구성 세부 사항을보고 pkg-config을 사용하여 라이브러리도 ExtUtils::PkgConfig있다.)

BTW

, Build.PL의 standard way 비 펄 모듈 전제 조건을 사용할 수없는 것입니다보고 누락 무엇을 설명하는 메시지를 인쇄 할 수 exit 0을 호출하지 않고 create_build_script을 호출하십시오. Devel :: CheckLib은이를 수행하기위한 check_lib_or_exit 함수를 제공합니다.

+0

CheckLib은 유망 해 보입니다. 감사. –

0

내 일반적인 접근 방식은 같은 pkg-config를 사용하지 않는 오래된 라이브러리, 또는 더 미묘한 OS 기능과 능력으로 더 어려운 것들을 확인하기 위해 ExtUtils::CCheckerpkg-config 기반 라이브러리, 또는 경우 ExtUtils::PkgConfig을 사용하는 것입니다.

관련 문제