2017-03-21 1 views
1

libotlmagic을 autotools로 빌드 된 프로젝트에 링크해야합니다. LIBS+="-lmagic"autotools로 라이브러리를 링크하는 적절한 방법

configure.ac에 그러나 나는 더 적절한 방법이 불행하게도이 작동하지 않습니다, Makefile.am에서 configure.acLDADD = @[email protected]PKG_CHECK_MODULES 매크로를 사용하는 것입니다 달성 할 수 있다고 생각 :

내 현재의 솔루션입니다. 여기

내가 ./configure

configure: error: Package requirements (magic) were not met: 

No package 'magic' found 

Consider adjusting the PKG_CONFIG_PATH environment variable if you 
installed software in a non-standard prefix. 

나는이 PKG-설정에서 libmagic의 부재 함께 할 수있는 뭔가가 생각 어떤 아이디어에서 얻고 무엇인가?

답변

1

나는 더 적절한 방법은 당신이 실제로 libmagic위한 PKG-구성 데이터 파일이있는 경우에만 [...]이 configure.acPKG_CHECK_MODULES 매크로를 사용하는 것입니다

을 달성, 심지어는 것을 생각 there is some controversy around PKG_CHECK_MODULES. 내가 알 수있는 한, the implementation you are probably using은 pkg-config 파일을 제공하지 않습니다. 물론 자신 만의 글을 쓸 수도 있지만 그 목적을 이길 수는 있습니다.

표준 위치 중 하나에 설치되는 헤더와 라이브러리 (기존 및 현저히 합리적)에 의존하려면 빌드를 구성하는 데 더 관용적 인 방법으로 configure 테스트를 수행해야합니다. 그들의 존재. 이 발견 된 경우 예를 들어,

AC_CHECK_HEADER([magic.h], [], [ 
    AC_MSG_ERROR([required header magic.h not found]) 
]) 
AC_SEARCH_LIBS([magic_open], [magic], [], [ 
    AC_MSG_ERROR([required library libmagic not found]) 
]) 

AC_SEARCH_LIBS() 자동 LIBS-lmagic 앞에 추가됩니다.

configure 사용자가 머리말과 라이브러리에 대한 대체 위치를 지정할 수있는 옵션을 제공하면 좋겠지 만, 사용자가 찾고자하는 것이 아닌 것 같아서 과도한 것처럼 보입니다. libmagic.

0

libmagic 용 pkgconfig 파일이 필요합니다. PKG_CONFIG_PATH에 magic.pc가 없으면 사용자 정의 autoconf 매크로를 작성하여 MAGIC_LIBS를 설정해야합니다.

관련 문제