makefile 에 대한 질문 입니다.
makefile 중 이해가 안되는 부분이 있어서 이를 해결 하고자 님들에게 질문을 드립니다.
makefile------------------------------
.SUFFIXES : .cpp .o
CXX = g++
INC = -I/usr/local/include/boost-1_37
LIBS = -L/usr/local/lib/ -lboost_regex-gcc42-mt-1_37
LINK = g++
CXXFLAGS = -c $(INC)
OBJS = boostTest.o
SRCS = boostTest.cpp
TARGET = boostTest
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INC) -o $@ $<
all : $(TARGET)
$(TARGET): $(OBJECTS) $(LINK) $(CXXFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)
clean :
rm -rf $(OBJS) $(TARGET) core
new :
$(MAKE) clean
$(MAKE) all
-----------------------------------------------------
$ make all
g++ -c -I/usr/local/include/boost-1_37 boostTest.cpp -o boostTest
boostTest: g++ -c -I/usr/local/include/boost-1_37 -o boostTest -L/usr/local/lib/ -lboost_regex-gcc42-mt-1_37
make: boostTest:: 명령을 찾지 못했음
make: *** [all] 오류 127
위와 같이 결과가 나옵니다.
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INC) -o $@ $<
-->
g++ -c -I/usr/local/include/boost-1_37 boostTest.cpp -o boostTest
이 부분은 위의 매크로가 정상적으로 변한것 같은데
all : $(TARGET)
$(TARGET): $(OBJECTS) $(LINK) $(CXXFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)
-->
boostTest: g++ -c -I/usr/local/include/boost-1_37 -o boostTest -L/usr/local/lib/ -lboost_regex-gcc42-mt-1_37
위와 같이 나오면서 에러가 나옵니다.
원래는 이렇게 나와야 정상이 아닌가요?
(g++ -c -I/usr/local/include/boost-1_37 -o boostTest -L/usr/local/lib/ -lboost_regex-gcc42-mt-1_37)
어떤 부분에서 실수를 했는지 모르겠습니다. 하루 내내 고민 했봤는데 도대체 모르겠습니다. ㅠㅠ
저의 잘못을 누구 통쾌하게 알려 주세요~
:다음에는...
: 다음에는 의존하는 것 목록을 써야 합니다.
타겟이 오브젝트파일에 의존성을 가져서 오브젝트 파일이 변할 때마다 갱신되야 할테니 아래처럼 나와야 하지 않을까요? $(OBJECTS) 는 $(OBJS)를 잘못 쓴 것이라고 생각한다면 아래처럼 나오지 않을까 싶습니다.
=================
잠못자는 한솔아빠
=================
잠못자는 한솔아빠
감사합니다
초보라 copy % paste 했더니 그럼 부분이 있었습니다. 감사합니다.
댓글 달기