Я хочу использовать Unity для создания модульного тестирования на мой код C, но я получаю следующее сообщение об ошибке при компиляции:неопределенная ссылка на `UNITY_BEGIN» и „UNITY_END“
$ make
gcc ../Unity/src/unity.o src/helpers.o src/chess.o src/search.o test/TestCheck.o src/main.o -o checkai
src/main.o: In function `main':
main.c:(.text+0x4b): undefined reference to `UNITY_BEGIN'
main.c:(.text+0x55): undefined reference to `UNITY_END'
collect2: error: ld returned 1 exit status
make: *** [Makefile:11: checkai] Error 1
$ make -n
gcc ../Unity/src/unity.o src/helpers.o src/chess.o src/search.o test/TestCheck.o src/main.o -o checkai
Мой главный functon просто выглядит следующим образом:
#include <stdio.h>
#include <stdlib.h>
#include "helpers.h"
#include "chess.h"
#include "../../Unity/src/unity.h"
//#include "../test/TestCheck.h"
void test_Smoke(void) {
TEST_ASSERT_EQUAL_INT(1, 2);
}
int main() {
version();
chesspiece chessboard[8][8];
initField(chessboard);
UNITY_BEGIN();
RUN_TEST(test_Smoke, 1);
return UNITY_END();
}
Спрятать что-то неправильно? Я уже пытался изменить порядок команды gcc, но пока ничего не помогло. Когда я прокомментирую UNITY_BEGIN
и UNITY_END
Я могу скомпилировать его, и тест на дым бежит без проблем.