첫 번째 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])
''pkg-config'를 직접 실행할 때 어떤 결과가 나옵니까? –
아마'PKG_CONFIG = true'를 사용하여 정상 모드에서 configure 스크립트를 실행하고있을 것입니다. PKG_CONFIG = true는 PKG_CHECK_MODULES를 효과적으로 비활성화하고 사용자가 LDFLAGS 및 CPPFLAGS를 올바르게 지정하도록 요구합니다. –
이러한 경우에는 'AC_SUBST (XXX_CFLAGS)'및 'AC_SUBST (XXX_LIBS)'가 누락 되었습니까? 도서관? –