2

最初のvalaと最初のautotoolsでサポートされているプロジェクトを作成しようとしています. オンラインのチュートリアルに従った後、すべてが実際に機能しますが、gcc コンパイラが起動してプログラムをコンパイルすると、「glib.h が見つかりません」というエラーが表示されます。

まず、.c ファイルを作成してから gcc を実行する代わりに、autotools だけで valac をコンパイラとして使用することはできませんか? (valacを直接実行すると完全に機能するため)

valac -c の代わりに valac を実行してから gcc を実行するように autotools を構成できない場合、この問題を解決するにはどうすればよいですか?

configure.ac:

AC_PREREQ([2.68])
AC_INIT([Scraps], [0.1], [Scraps])
AM_INIT_AUTOMAKE
AM_CONFIG_HEADER([config.h])
AC_PROG_CC
AM_PROG_VALAC
AC_CONFIG_FILES([Makefile
                 src/Makefile])
AC_OUTPUT

./src/ の Makefile.am:

scrapsdir=../
scraps_PROGRAMS=scraps
scraps_SOURCES=main.vala

ありがとう!

4

1 に答える 1

4

あなたが言ったように、autotools は valac -C を実行してから gcc を実行します。すべてがCと同じであるため、これは実際には良いことです。見つけられるautotoolsのドキュメント(欲求不満のメーリングリストやスタックオーバーフローの投稿を含む)が適用されるため、問題をグーグルで検索するだけで、何でも簡単に答えを見つけることができます。

configure.ac には、次のようなものが必要です。

PKG_CHECK_MODULES(GLIB, glib-2.0 gobject-2.0)
AC_SUBST(GLIB_LIBS)
AC_SUBST(GLIB_CFLAGS)

次に、Makefile.am で次のようにします。

scraps_LDFLAGS = $(GLIB_LIBS)
scraps_CFLAGS = $(GLIB_CFLAGS)

例としてhttp://gitorious.org/sqlheavyを使用できます。とには実行ファイルがexamples/ありutils/、 にはライブラリがありsqlheavy/、かなり完成度が高いです。

于 2011-09-08T17:15:36.723 に答える