2014-01-10 3 views
0

첫 번째 autotools 프로젝트는 간단하고 벙어리 일 수도 있습니다. glib 및 다른 타사 라이브러리를 찾을 수없는 makefile을 만드는 것입니다. (우분투 리눅스를 실행하는 중요한 경우 C 정적 라이브러리를 컴파일.)Autotools PKG_CHECK_MODULES이 변수를 설정하지 않습니다.

Configure.ac 다음 행이 포함

lib_LIBRARIES=libblah.a 
libblah_a_SOURCES=blah.c util.c 
libblah_a_CPPFLAGS=$(libglib_CFLAGS) $(libobject_CFLAGS) $(libuuid_CFLAGS) 
libblah_a_LIBADD=$(libglib_LIBS) $(libobject_LIBS) $(libuuid_LIBS) 

실행 autoreconf을 다음과 같이

PKG_CHECK_MODULES([libglib], [glib-2.0 >= 2.28]) 
PKG_CHECK_MODULES([libobject], [gobject-2.0 >= 2.28]) 
PKG_CHECK_MODULES([libuuid], [uuid]) 

Makefile.am입니다 - install은 다음과 같이 Makefile.in을 생성합니다.

libglib_CFLAGS = @[email protected] 
libglib_LIBS = @[email protected] 
libobject_CFLAGS = @[email protected] 
libobject_LIBS = @[email protected] 
libuuid_CFLAGS = @[email protected] 
libuuid_LIBS = @[email protected] 

좋아요! 그런 다음 configure 스크립트는이 라이브러리를 찾았지만 위 라인을 쓸모없는 Makefile로 변환합니다.

libglib_CFLAGS = 
libglib_LIBS = 
libobject_CFLAGS = 
libobject_LIBS = 
libuuid_CFLAGS = 
libuuid_LIBS = 

Help!

편집 :

AC_INIT([amblah], [1.0], [[email protected]]) 
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) 
AC_PROG_CC 
AC_CONFIG_HEADERS([config.h]) 
AC_CONFIG_FILES([ 
Makefile 
libblah/Makefile 
tests/Makefile 
]) 
AC_OUTPUT 
AC_PROG_RANLIB 
PKG_PROG_PKG_CONFIG(0.26) 
PKG_CHECK_MODULES([libglib], [glib-2.0 >= 2.28]) 
PKG_CHECK_MODULES([libobject], [gobject-2.0 >= 2.28]) 
PKG_CHECK_MODULES([libuuid], [uuid]) 
+1

''pkg-config'를 직접 실행할 때 어떤 결과가 나옵니까? –

+0

아마'PKG_CONFIG = true'를 사용하여 정상 모드에서 configure 스크립트를 실행하고있을 것입니다. PKG_CONFIG = true는 PKG_CHECK_MODULES를 효과적으로 비활성화하고 사용자가 LDFLAGS 및 CPPFLAGS를 올바르게 지정하도록 요구합니다. –

+0

이러한 경우에는 'AC_SUBST (XXX_CFLAGS)'및 'AC_SUBST (XXX_LIBS)'가 누락 되었습니까? 도서관? –

답변

1

도현 : 여기에 전체 configure.ac 파일입니다! 나는 문제를보고, 그것은 바보 newb 문제입니다. AC_OUTPUT은 Makefile 출력을 뱉어내는 역할을합니다. 이 사실에 대한 GNU 튜토리얼은 명확하지 않았고 AC_OUTPUT 아래에 몇 줄을 추가했습니다. 따라서 AC_OUTPUT이 출력을 생성 할 때 해당 행은 고려되지 않았습니다. AC_OUTPUT을 맨 끝으로 이동하면 문제가 해결됩니다.

관련 문제