[완료]Makefile
BASE_DIR = /home/nhhatjoya/test/test
SRC_DIR = $(BASE_DIR)/src
OBJ_DIR = ./OBJ
BIN_DIR = $(BASE_DIR)/bin
VPATH = .:$(OBJ_DIR)
INC = -I$(BASE_DIR)/src/my_test
CC = gcc
CPP = g++
IFLAGS = $(INC)
CFLAGS = -g $(IFLAGS)
CPPFLAGS = -g $(IFLAGS)
#
# Default libraries: Add extra libraries here
#
LIBRARIES = -lmysqlclient
OBJS = my_test.o
SOURCES = $(OBJS:.o=.cpp)
BINARIES = $(BIN_DIR)/my_test
all:
$(OBJ_DIR) $(BINARIES)
$(OBJ_DIR):
-mkdir $(OBJ_DIR)
clean:
-rm -f $(OBJ_DIR)/*.o $(BINARIES)
full: clean all
# -----------------------------------------------------------------------------------------------
# Suffix rule
# -----------------------------------------------------------------------------------------------
$(BIN_DIR)/my_test : $(OBJS)
$(CPP) -o $@ $(OBJ_DIR)/my_test.o
# Suffix rule
.SUFFIXES: .cpp .c .o
.cpp.o:
$(CPP) $(CPPFLAGS) -c $< -o $(OBJ_DIR)/$@
.c.o:
$(CC) $(CFLAGS) -c $< -o $(OBJ_DIR)/$@
실행을 시켜보면..
make: execvp: ./OBJ: Permission denied
make: *** [all] Error 127
퍼미션 오류가나서
퍼미션 777을 줘도.. 이런 오류가..
755도.. 그렇고 ㅠ_ㅠ..
다 맞는거 같은데 감을 못 잡겠습니다. ㅠ_ㅠ..
all: $(OBJ_DIR)
all: 뒤에 $(OBJ_DIR)이
all: 뒤에 $(OBJ_DIR)이 같은 줄에 나와야 되는데, 다음 줄에 나오니 명령이라고 생각해서 "./OBJ"를 실행하려고 하니 에러가 나죠.
그렇게 하게 되면...
make: *** No rule to make target `my_test.o', needed by `/home/nhhatjoya/test/test/bin/my_test'. Stop.
이런오류가 나와서
분명 오브젝트 파일 명시를 했음에 불구하고 없다고 나오는건지..
알수가 없습니당..
바보같이 ㅡㅡ;;
오브젝트명을 잘못써서 ㅠ_ㅠ...
에고.. 민폐를 끼쳤습니다.. ㅠ_ㅠ..
리플 감사합니다 ^^;
댓글 달기