2010-09-26 3 views
0

Я использую GNU autotools для моего проекта. Скрипт configure.ac имеет следующий фрагмент.Autoconf не определяет переменную правильно

И я проверяю переменную HAVE_CHECKED в коде C++. Это работает для - без выбора chkhere.

Когда я даю ./configure --with-chkhere, он отображает сообщение «chkhere: enabled» по мере необходимости, но HAVE_CHECKED появляется неопределенным внутри кода C++.

Пожалуйста, укажите, где я ошибаюсь, или если я могу проверить это по-другому? Благодарю.

P.S .: Я следую этой последовательности команд: automake; libtoolize; aclocal -I m4; Autoconf;

+2

P.S. к вашей P.S. Вместо этой последовательности команд вы можете использовать 'autoreconf'. – ptomato

ответ

1

Если вы не звоните autoheader, то config.h.in может быть устаревшим и может не указывать HAVE_CHECKED. Я предлагаю вам просто выполнить последовательность команд и вместо этого использовать autoreconf, он будет запускать то, что вам нужно.

1

Вы уверены, что #include <config.h>? Вот где будет определено HAVE_CHECKED.

EDIT

Моя версия AUTOHEADER жалуется и терпит неудачу, когда вы не используете полную форму AC_DEFINE:

AC_DEFINE([HAVE_CHECKED], [1], [some description]) 

Так что ваши config.h.in не будет получать обновленный даже если вы сделали вызов autoheader.

+0

Да, у меня есть. И я подтвердил, что он также не определяется в config.h. – SkypeMeSM

Смежные вопросы