Я начал использовать checkфреймворк для тестирования C-приложений. Для лучшего понимания я просмотрел пример в check package. Он работает нормально, но мне не нужны инструменты automake - я хочу скомпилировать его своим собственным Makefile (поскольку я хочу правильно понять проверку и мне нужно использовать мое финальное приложение как пакет ОС). Возможно, я мог бы использовать там автоматически сгенерированный Makefile, но сейчас это будет следующая новая вещь, которую я должен изучить, и у меня есть ограниченное время для подготовки модульных тестов. (Затем, конечно, я хочу изучить и понять инструменты для генерации Makfile, использования configure и т. д.)
Проблема в сборке приложения с моим Makefile, что я не привязал объект для проверки функциональности :
/tmp/ccm7cniy.o: In function `test_money_create':
check_money.c:(.text+0x1e): undefined reference to `tcase_fn_start'
check_money.c:(.text+0x79): undefined reference to `_fail_unless'
check_money.c:(.text+0xcc): undefined reference to `_fail_unless'
Я узнал, что в примере приложения есть gcc с obj. файл check_money-check_money.o
, который был создан gcc:
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT check_money-check_money.o -MD -MP -MF .deps/check_money-check_money.Tpo -c -o check_money-check_money.o `test -f'check_money.c' || echo './'`check_money.c
И вот моя проблема: он использует зависимость check_money-check_money.Tpo
. Этот файл создавался с помощью команды ./configure
, которую я не использую.
Как я могу создать свой собственный .o
файл для проверки успешной сборки? Нужно создавать этот файл для каждого приложения? Не мог быть один, где-нибудь в разделяемых библиотеках?
(извините, если мой вопрос «глупый», у меня пока небольшой опыт создания приложений в Linux)