저는 makefiles를 처음 접했고 makefile을 사용하여 디렉토리를 만들고 싶습니다. 내 프로젝트 디렉토리는 다음과 같습니다.
+--Project
+--output
+--source
+Testfile.cpp
+Makefile
모든 개체와 출력을 각 출력 폴더에 넣고 싶습니다. 컴파일 후 다음과 같은 폴더 구조를 만들고 싶습니다.
+--Project
+--output
+--debug (or release)
+--objs
+Testfile.o
+Testfile (my executable file)
+--source
+Testfile.cpp
+Makefile
몇 가지 옵션을 시도했지만 성공하지 못했습니다. make 파일을 사용하여 디렉토리를 만들도록 도와주세요. 나는 당신의 고려를 위해 내 Makefile을 게시하고 있습니다.
#---------------------------------------------------------------------
# Input dirs, names, files
#---------------------------------------------------------------------
OUTPUT_ROOT := output/
TITLE_NAME := TestProj
ifdef DEBUG
TITLE_NAME += _DEBUG
else
ifdef RELEASE
TITLE_NAME += _RELEASE
endif
endif
# Include all the source files here with the directory tree
SOURCES := \
source/TestFile.cpp \
#---------------------------------------------------------------------
# configs
#---------------------------------------------------------------------
ifdef DEBUG
OUT_DIR := $(OUTPUT_ROOT)debug
CC_FLAGS := -c -Wall
else
ifdef RELEASE
OUT_DIR := $(OUTPUT_ROOT)release
CC_FLAGS := -c -Wall
else
$(error no build type defined)
endif
endif
# Put objects in the output directory.
OUT_O_DIR := $(OUT_DIR)/objs
#---------------------------------------------------------------------
# settings
#---------------------------------------------------------------------
OBJS = $(SOURCES:.cpp=.o)
DIRS = $(subst /,/,$(sort $(dir $(OBJS))))
DIR_TARGET = $(OUT_DIR)
OUTPUT_TARGET = $(OUT_DIR)/$(TITLE_NAME)
CC_FLAGS +=
LCF_FLAGS :=
LD_FLAGS :=
#---------------------------------------------------------------------
# executables
#---------------------------------------------------------------------
MD := mkdir
RM := rm
CC := g++
#---------------------------------------------------------------------
# rules
#---------------------------------------------------------------------
.PHONY: all clean title
all: title
clean:
$(RM) -rf $(OUT_DIR)
$(DIR_TARGET):
$(MD) -p $(DIRS)
.cpp.o:
@$(CC) -c $< -o $@
$(OBJS): $(OUT_O_DIR)/%.o: %.cpp
@$(CC) -c $< -o $@
title: $(DIR_TARGET) $(OBJS)
미리 감사드립니다. 저도 실수를했다면 안내 해주세요.
output/debug', needed by
directory '. Stop." 오류가 발생했습니다 . 그러나 나는 지금 그것에 대해 걱정하지 않을 것입니다. 기본 규칙을 고수합니다. :). 안내해 주셔서 감사합니다. 그리고 나는 최상위 디렉토리에서만 "make"를 실행하고 있습니다.