2016-08-17 2 views
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_BEGINUNITY_END을 주석 처리 할 때 컴파일 할 수 있으므로 문제없이 스무스 테스트가 실행됩니다.

답변

0

릴리스 버전 2.1.0을 사용하지 않으면 해결할 수 있습니다. 그것을 해결하기 위해 나는 현재 마스터 분기를 복제하고 그것은 단지도 UNITY_BEGINUNITY_END와 함께 일 :

git clone https://github.com/ThrowTheSwitch/Unity.git