"make"를 사용하여 컴파일 할 때마다 Makefile이 정상적으로 작동합니다. -j2와 프로세서를 모두 사용하는 이유메이크 파일 오류 "파일 존재"make -j2
이INCLUDE = -I/usr/include/X11 -I/usr/local/include -I/usr/local/include/FL/images -I/usr/include/freetype2
CC=g++
CFLAGS=-w -D LINUX -O3 -fpermissive
OBJDIR=objects
SRCDIR=src
LDFLAGS= -L/usr/X11R6/lib$(LIBSELECT) -lpthread -lfltk -lXext -lXft -lfontconfig -lXinerama -lpthread -ldl -lm -lX11
SOURCES_RAW= robot_driver_agent.cpp robot_driver_position.cpp robot_driver_priorityqueue.cpp main.cpp robot_driver_tree.cpp robot_driver_stack.cpp robot_driver_grid.cpp robot_driver_path.cpp grid_analyzer.cpp tcpserver.cpp tcpclient.cpp servercontrol.cpp clientcontrol.cpp robot.cpp udpserver.cpp udpclient.cpp owncontrol.cpp guiwindow.cpp rs232.cpp
TARGET:= go
TARGETD:= go_d
OBJECTS:=$(SOURCES_RAW:.cpp=.o)
OBJECTS:=$(patsubst %.o, $(OBJDIR)/%.o, $(OBJECTS))
SOURCES:=$(SOURCES_RAW)
SOURCES:=$(patsubst %.cpp, $(SRCDIR)/%.cpp, $(SOURCES))
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) -w -D LINUX $(INCLUDE) $^ -o [email protected] $(LDFLAGS)
$(OBJDIR)/%.o: src/%.cpp
test -d $(OBJDIR) || mkdir $(OBJDIR)
$(CC) -g -c $< $(CFLAGS) -o [email protected]
debug: $(TARGETD)
$(TARGETD): $(OBJECTS)
$(CC) -w -D LINUX $(INCLUDE) $^ -o [email protected] $(LDFLAGS)
%.o: $(SRCDIR)/%.cpp
$(CC) -c -g $< $(CFLAGS)-o [email protected]
.PHONY : clean
clean:
rm -f $(OBJDIR)/*.o
rm -f $(TARGET) $(TARGETD)
사람이 말해 줄 수이 오류를 만든다 - 나는 "-j2하게"사용할 때, 나는
mkdir: cannot create directory `objects': File exists
make: *** [objects/robot_driver_agent.o] Error 1
이것은 메이크라는 오류가 나타나고 그것을 고치는 방법? 어떤 도움을 주셔서 감사합니다.
이것은 작동하지만, 파일을 컴파일 할 때마다 "mkdir objects"가 나타납니다. mkdir :'objects '디렉토리를 만들 수 없습니다 : 파일이 있습니다. " 이 문제를 어떻게 해결할 수 있습니까? – Sterling
@ 스털링 : 당신은 그 메시지를 받아서는 안됩니다. 최소한의 테스트 케이스를 만들 수 있습니까? (즉 훨씬 간단한 메이크 파일). –
오, 왜냐하면 나는 두 개의 표적에서 mkdir을 가졌기 때문입니다. 당신의 도움을 주셔서 감사합니다! – Sterling