Сборка библиотеки для проверки теста C фреймворка - PullRequest
5 голосов
/ 15 марта 2012

Я начал использовать 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)

1 Ответ

7 голосов
/ 16 марта 2012

Добавление комментария в качестве ответа:
Пожалуйста, проверьте, установлен ли у вас check framework. Если это так, вы можете попробовать pkg-config сказать

gcc check_money.c `pkg-config --cflags --libs check`

Здесь утилита pkg-config будет считывать файл .pc (который имеет значение check.pc в случае check framework, поэтому последняя запись в команде говорит check) и добавляет необходимые флаги компилятора ( --cflags опция) & библиотеки / опции компоновщика (--libs опция)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...