У меня есть набор вспомогательных функций, определенных в testhelper.c. Чтобы облегчить их использование, я пытаюсь связать их с файлом заголовка testhelper.h и включить этот файл в тестовые программы, которые я есть разработки. Однако файлы не связаны правильно, потому что я получаю «неопределенную ссылку» в программах тестирования при компиляции.C linking, undefined reference to <function>
Код в Makefile является:
randomtestadventurer: randomtestadventurer.c dominion.o rngs.o testhelpers.o
gcc -o randomtestadventurer -g randomtestadventurer.c dominion.o rngs.o $(CFLAGS)
randomtestcard: randomtestcard.c dominion.o rngs.o testhelpers.o
gcc -o randomtestcard -g randomtestcard.c dominion.o rngs.o $(CFLAGS)
testhelpers.o: testhelpers.h testhelpers.c
gcc -c testhelpers.c -g $(CFLAGS)
включаемой путь в обоих randomtest программ: #include «testhelpers.h»
Это моя первая попытка в заголовочном файле Я сделал с нуля, поэтому я не уверен, что я сделал неправильно.
Вы должны установить ссылку на testhelpers.o. Добавьте его в командную строку gcc. – PMF
См. [Этот пример Makefile] (http://stackoverflow.com/a/14180540/841108) ... Узнайте, как использовать переменные в 'Makefile'. Запустите 'make -p', чтобы узнать о встроенных правилах. –
@Basile Starynkevitch Я обычно очищаю свои make-файлы дальше в разработке. Поскольку правила makefile часто меняются на данном этапе разработки. Я знаю, что у меня есть тонна избыточности, которая должна уйти (как и случайные тесты, использующие один и тот же набор файлов .o) –