Я начал использовать check framework для тестирования C-приложения.
Для лучшего понимания я просмотрел пример в проверочном пакете. Он работает нормально, но мне не нужны инструменты 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)