LINUX.ORG.RU

Помогите разобраться , что делается с config.h после ./configure

 , , ,


0

3

Такая проблема ? Я делал ./configure этих утилит https://github.com/karelzak/util-linux

Потом make - но у меня не скомпилировалось (и не об этом вопрос в принципе, но обо все по порядку). Не пошло, потому что я компилировал с помощью Standalone Toolchain от Android NDK под ArmeAbi процессоры.

Потом я плюнул, и решил как-то сам начать портировать утилиту, со своими убогими знаниями с и переключился на способ компиляции с файлами Application.mk, Android.mk и фолдером jni. Дело в том , что после ./configure в корне util-linux-2.26.1 создается файл config.h. Когда делается стандартный make , то этот файл (config.h) каким-то боком (я реально не знаю )), прописывается в хидеры или в сорцы основных исходников ИЛИ же может он к ним подключается с каким то ключем компилятора (не знаю !!!). Так вот вопрос, к каким именно файлам из основных исходников должен подключаться config.h ? Дело в том , что у меня время от времени вылазят всякие util-linux-2.26.1/libblkid/src/version.c:22:34: error: 'LIBBLKID_VERSION' undeclared here (not in a function) и т.д. Эта LIBBLKID_VERSION задекларирована в config.h, но config.h никуда блин не подключен и мне по видимому нужно подключить его самому , но только куда? В некоторых случаях , я способом тыка подключил уже config.h к другим хидерам, но без обладания телепатических способностей , это занятие весьма затруднительно, если учитывать сколько еще раз мне придется почти что наобум подключать к хидерам config.h в этом большом проекте. Вопрос: в чем тут система, к каким файлам все-таки подключать ? Нужно ли вручную это делать? Может просто нужно использовать ключи компилятора ?

Сорри за много текста...



Последнее исправление: andreyua (всего исправлений: 1)

ИЛИ же может он к ним подключается с каким то ключем компилятора

Это.

-include config.h
ко всем файлам в проекте.

xaizek ★★★★★
()
Последнее исправление: xaizek (всего исправлений: 1)
Ответ на: комментарий от andreyua

Так просто и это наиболее правильное решение ?

Альтернативно, можно явно включать (и возможно сначала сделать -Iroot/dir, чтобы упростить #include), но практика показала, что это трудоёмко и подвержено ошибкам. Некоторые макросы проверяются на наличие (#ifdef) и если забыть подключить config.h, то всё будет работать, но флаг всегда будет выключен, с -include такого не произойдёт.

То есть прописать так в Android,mk ?
LOCAL_CFLAGS := -include config.h

Если там нет рекурсивных вызовов, то да.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Спасибо большое, подключил LOCAL_CFLAGS := -include config.h , ошибка исчезла, посмотрим что будет дальше, вопрос засчитан походу... Где тут «лайк» :) ?

andreyua
() автор топика
Ответ на: комментарий от andreyua

Где тут «лайк» :) ?

Это не позитивный форум. Тут нельзя поощрять, только банить, игнорировать, удалять.

Deleted
()
30 марта 2016 г.
Ответ на: комментарий от Deleted

Можно отметить тему, как решённую.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.