Autoconfig / Automakeは依存D-BUSライブラリに対してAM_CFLAGSおよびAM_LDFLAGSを作成できません。なぜ?

Autoconfig / Automakeは依存D-BUSライブラリに対してAM_CFLAGSおよびAM_LDFLAGSを作成できません。なぜ?

DBUSを使用するプログラムを書くためにautomake / autoconfigツールを使いたいです。ただし、make コマンドは常に「dbus/dbus-glib.h」エラーを報告します。そのファイルやディレクトリはありません。

私のオペレーティングシステムはUbuntu 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が有効な値を取得できます。

おすすめ記事