0
파일 에 함수 int get_token();
이 정의되어 있으며이 파일을 헤더 파일 scanner.h
에 선언했습니다. 이제이 헤더 파일을 precedence.h
이라는 다른 헤더에 포함 시켰으며, 마지막으로 을 precedence.c
파일에 포함 시켰습니다. 여기에서 내 함수 get_token();
을 호출하려고합니다. make
를 호출 링커가 다른 파일에서 내 함수가 정의되어 있지 않음을 알립니다.
나는이 함수를 호출
는 오류 다음 발생 :gcc precedence.c t_stack.c -o expr
/tmp/ccNgwuFu.o: In function `main':
precedence.c:(.text+0x730): undefined reference to `get_token'
collect2: error: ld returned 1 exit status
Makefile:8: recipe for target 'expr' failed
make: *** [expr] Error 1
을이 또한 변화 내가 precedence.h과 함께 scanner.h을 포함하여 시도 내 메이크
CC=gcc
CFILES=precedence.c t_stack.c
HFILES=precedence.h t_stack.h token.h error.h
all: expr
expr: $(CFILES) $(HFILES)
$(CC) $(CFILES) -o [email protected]
입니다 Makefile.
저는 C 프로그래밍에 익숙하지 않습니다.
당신은 scanner.c''에서'get_token'을 정의했다. 그런 다음'scanner.c'를 참조하지 않고 프로그램을 링크하려고했습니다. 'scanner.c'를'Makefile'에 추가하고, 컴파일하고, 링크해야합니다. 또는, 대신에, get_token를 사용하지 말아주세요. –
내가 틀린 메이크 파일을 편집하고 있었다 : D LOL 감사합니다. – angie