DBUS를 사용하는 프로그램을 작성하기 위해 automake/autoconfig 도구를 사용하고 싶습니다. 그러나 make 명령은 항상 "dbus/dbus-glib.h" 오류를 보고합니다. 해당 파일이나 디렉터리가 없습니다.
내 운영 체제는 우분투 10.10입니다. "dbus-1"과 "dbus-glib-1"을 설치했습니다. 생성된 Makefile을 확인한 결과 AM_CFLAGS와 AM_LDFLAGS가 모두 비어 있음을 발견했습니다.
누구든지 도와줄 수 있나요? 매우 감사합니다!
이것은 내 코드입니다.
config.ac:
AC_INIT([my-app], [0.1])
AC_PREREQ([2.59])
AM_INIT_AUTOMAKE([1.10 -Wall no-define])
AC_CONFIG_HEADERS([config.h])
AC_PROG_CC
AM_PROG_CC_C_O
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
DBUS_REQUIRED=1.3.1
DBUS_GLIB_REQUIRED=0.82
GLIB_REQUIRED=2.26.0
PKG_CHECK_MODULES(DBUS, [dbus-1 >= $DBUS_REQUIRED dbus-glib-1 >= $DBUS_GLIB_REQUIRED])
AC_SUBST(DBUS_CFLAGS)
AC_SUBST(DBUS_LIBS)
Makefile.am:
AUTOMAKE_OPTIONS = subdir-objects
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
bin_PROGRAMS = my_app
my_app_SOURCES = src/my-app.c
AM_CFLAGS= @DBUS_CFLAGS@
AM_LDFLAGS= @DBUS_LIBS@
dist_noinst_SCRIPTS = autogen.sh
myapp.c
...
"#include" {{{<dbus/dbus-glib.h>}}}
...
답변1
근본 원인을 찾았습니다. configure.ac에서 AC_CONFIG_FILES([Makefile]) 및 AC_OUTPUT을 호출하기 전에 DBUS C/LD 플래그를 추가해야 합니다. 그러면 Makefile의 AM_CFLAGS 및 AM_LDFLAGS가 유효한 값을 얻을 수 있습니다.
답변2
aclocal
관련 정의를 모두 소개했 습니까 ?