gnu 메이크 파일 템플릿이 잘 서비스되어 있지만 내 경로에 첫 번째 g ++ 이외의 컴파일러를 지정하려고하면 실패합니다.gnu 메이크 파일에서 컴파일러 지정하기
다음은 템플릿입니다.
CXX = g++
CXXFLAGS = $(INC) $(LIB) -Wall
INC = -I./ -I/usr/local/include
LIB = -L/usr/local/lib
SRCS = \
blah1.cpp
blah2.cpp
OBJS = $(SRCS:.cpp=.o)
DEPS = $(SRCS:.cpp=.d)
PROG = myprog
$(PROG): $(OBJS)
$(CXX) $(CXXFLAGS) -o [email protected] $(OBJS)
%.d: %.cpp
@set -e; rm -f [email protected]; \
$(CXX) -MM $(CXXFLAGS) $< > [email protected]$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o [email protected] : ,g' < [email protected]$$$$ > [email protected]; \
rm -f [email protected]$$$$
debug: CXXFLAGS += -O0 -DDEBUG -ggdb
debug: $(PROG)
-include $(DEPS)
.PHONY: clean
clean:
rm -f $(DEPS) $(OBJS) $(PROG)
I가/usr/local/bin 같은 것으로 ++ g에서 컴파일러를 변경
이/g ++ (46), 여전히 g로 컴파일 ++ (은/usr/빈/g ++ 정확한 예정). 왜?P. 템플릿 비평은 환영합니다. 나는 gnu make에 익숙하지 않다. 나는 그저 웹을 벼락치락 거리고 하루 동안 검색했다. 기본 C 컴파일러를 지정
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c
주 $(CXX)
하지 $(CC)
: 당신은 오브젝트 파일을 구축하는 방법에 대한 자신의 규칙을 지정, 그래서 확인하지 않은
위의 템플릿에서 CC를 CXX로 바꿨습니다. – jrm