0
내 C 코드에 단위 테스트를 만들기위한 Unity을 사용하고 싶지만 컴파일 할 때 나는 다음과 같은 오류가 발생합니다 :정의되지 않은 참조 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
을 주석 처리 할 때 컴파일 할 수 있으므로 문제없이 스무스 테스트가 실행됩니다.