2012-11-27 2 views
0

나는 사소한 문제가있다. 나는 내 코드 simpletrial.cpp에 추가하기로 결정한 함수를 링크하기 위해 작업하는 Makefile을 수정하려고한다. (함수는 IniFile.cpp 임) 내 오래된 작업 Makefile은 다음과 같다 :메이크 파일 연결 문제

include Makefile.arch 
TESTS   := simpletrial.cpp 
TESTO   := $(TESTS:.C=.o) 
TEST   := simpletrial 

OBJ    = $(TESTO) 
PROGRAMS  = $(TEST) 

CXXFLAGS  += 
CXXFLAGS  += 
GLIBS   += 

.SUFFIXES: .$(SrcSuf) .$(ObjSuf) .$(DllSuf) 

all:   $(PROGRAMS) 

$(TEST):  $(TESTO) 
     $(LD) $(LDFLAGS) $^ $(GLIBS) $(OutPutOpt)[email protected] 
     @echo "[email protected] done" 

clean: 
     @rm -f $(OBJ) $(TESTO) core *~ src/*~ include/*~ 

.$(SrcSuf).$(ObjSuf): 
     $(CXX) $(CXXFLAGS) -c $< -o [email protected] 

나는 컴파일하고 IniFile.cpp을 연결하는 성공없이 시도했지만 난 항상에 오류 "정의되지 않은 참조를받을 'INIFILE :: 등 등 감사

답변

0

당신의 연결 라인은 다음과 같다 :!

$(LD) $(LDFLAGS) $^ $(GLIBS) $(OutPutOpt)[email protected] 

여기 $ (TESTO)이고이 경우에는 simpletrial.o 인 규칙에 대한 사전 요구 사항 인 $ ^와 연결됩니다. IniFile.cpp가없는 것 같습니다. 그래서 그것과 연결되지 않습니다. 다음과 같이 그냥 시험을 IniFile.cpp을 추가 수정하려면 :

TESTS   := simpletrial.cpp InFile.cpp 

는 그 다음 컴파일해야와 함께 두 파일을 연결하고 그 결과로 simpletrial 생산하고 있습니다. $의 값을해야

TESTO   := $(TESTS:.cpp=.o) 

(프로그램 검사) 변수와 현재를 .O하는 .CPP에서 접미사를 변경합니다

는 또한 나는 당신의 TESTO 라인뿐만 아니라 변경해야 할 수도 있다고 생각 정의는 .C로 변경됩니다 ...

+0

위대한! 그것은 작동합니다! – Tiutto