[질문] Makefile 에러
글쓴이: umzzi / 작성시간: 금, 2003/09/26 - 11:26오전
Quote:
"Makefile"CFLAGS = $(COMMON_CFLAG)
DFLAGS = $(COMMON_DFLAG) -ggdb -g
INCS = -I$(MYLIB_HEADER_DIR)LIB = -L$(MYLIB_LIB_DIR) -lMYLIBString -lSMDKScript -lSMDKDatelib
BIN = etcParser
SRCS = etcParser.c etcUtil.c
OBJS = $(SRCS:.c=.o)all : $(BIN)
$(BIN) : $(OBJS)
$(CC) -o $@ $(CFLAGS) $(DFLAGS) $< $(LIB)%.o : %.c
$(CC) -c $(CFLAGS) $(DFLAGS) -o $@ $< -I$(MYLIB_HEADER_DIR)
SOURCE는 etcParser.c etcUtil.c etcParser.h
:oops: etcParser.h 에 etcUtil에 있는 함수 프로토타입을 정의해놨습니다.
그런데 etcParser.c에서 etcUtil.c에 있는 함수를 호출하면 함수를 정의하지 않았다고
나옵니다. 왜 그럴까요?
Quote:"에러 메세지"
/svc/fulip/maketest/etc/etcParser.c:85: undefined reference to `DirFileInfo1''
/svc/fulip/maketest/etc/etcParser.c:87: undefined reference to `SrcMoveFile''
Forums:
Re: [질문] Makefile 에러
정확한 것은 소스를 봐야만 알수 있지만, 위와 같은 오류는 C 에서 (C++아닌) 실제는 MACRO이며, 그 선언이 etcParser.c 에 보이지 않기 때문에, 암묵적으로 int 를 돌리는 함수로 가정하고, external symbol로 만들어 놓았다가 link시에 생기는 오류입니다.
CFLAGS에 -Wall -W 를 추가하시고, 관련된 warning을 모두 해결해 보세요.
---
http://coolengineer.com
음..
에서
$(BIN) 다음줄에
$(CC) -o $@ $(CFLAGS) $(DFLAGS) $(OBJS) $(LIB)
로 바꾸고 make 해 보세요.
$<는 최근에 갱신된 파일 하나를 가리키는 매크로인것 같습니다.
^^;
==============================
꿈꾸는소년
댓글 달기