Сборка Vala-проекта с autotools = "glib.h" не найдена - PullRequest
2 голосов
/ 08 сентября 2011

Я пытаюсь создать свой первый проект с поддержкой vala и первого autotools.На самом деле все работает после того, как вы последовали обучающему онлайн, но когда компилятор gcc запускает компиляцию моей программы, я получаю ошибку «glib.h not found».вместо создания .c файлов, а затем запустить gcc?(потому что запуск valac напрямую работает идеально)

Если я не могу настроить автоинструмент для запуска valac вместо valac -c и затем gcc, как мне решить эту проблему?.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

Makefile.am in ./src/:

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

Спасибо!

1 Ответ

4 голосов
/ 08 сентября 2011

Как вы сказали, autotools просто запускает valac -C, а затем запускает gcc. На самом деле это хорошо, поскольку все так же, как и в случае с C. Любая документация по автоинструментам (включая расстроенный список рассылки и сообщения о переполнении стека), которые вы можете найти, применима, так что довольно просто найти ответ на любой вопрос, просто найдя проблему.

В вашем файле 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/ есть библиотека, так что она довольно полная.

...