소스 코드 파일이 서로 다른 디렉토리에있을 때 Makefile 작성에 어려움이 있습니다. 폴더 이름을 지정하는 폴더 FOLDER1 및 FOLDER2와 헤더 파일에다른 디렉토리에있는 소스 파일을위한 makefile 작성
내 소스 파일 (.CC)가 다음을 포함한다 : 다음과 같이
디렉토리 구조입니다. 내 makefile이 FOLDER1에 있습니다. 여기
program_NAME := myprogram
program_C_SRCS := $(wildcard *.cc)
program_C_OBJS := ${program_C_SRCS:.cc=.o}
program_OBJS := $(program_C_OBJS)
program_INCLUDE_DIRS := ../INCLUDE
program_LIBRARY_DIRS :=
program_LIBRARIES :=
CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))
LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))
LDFLAGS += $(foreach library,$(program_LIBRARIES),-l$(library))
.PHONY: all clean distclean
all: $(program_NAME)
$(program_NAME): $(program_OBJS)
$(LINK.cc) $(program_OBJS) -o $(program_NAME)
clean:
@- $(RM) $(program_NAME)
@- $(RM) $(program_OBJS)
distclean: clean
는 그때 그것이 정의되지 않은 참조의 오류를 제공 FOLDER2 일부 파일을 이동에 있지만 작동 FOLDER1에 내 모든 소스 (.CC) 파일을 유지합니다.
하나의 디렉토리에있는 모든 헤더 파일을 INCLUDE라고 말하고 다른 디렉토리에 내 소스 파일을 배포 할 수 있도록 makefile을 수정하는 방법을 알려주십시오.
감사합니다 !!!
@Haatschii을 .... 감사합니다! 그 지금 일하고있어. –
나는 의심이 하나 더 있습니다 ... 헤더 파일에 2 개의 디렉토리가 있다면 INCLUDE1과 INCLUDE2라고 말하십시오. 헤더 파일이 INCLUDE1과 INCLUDE2에 있다면 INCLUDE2에서 가져와야하며 INCLUDE2에없는 경우 INCLUDE1 자체에서 헤더 파일을 가져와야합니다. 위의 파일을 수정하여 도움을 받으십시오. –
my @KundanKumar에 답하십시오. – Haatschii