2016-12-20 12 views
1

私はこれが共通クエリであることを認識していますが、私は以前の回答を見ても何時間も費やしましたが、まだ紛失しています。私はmakefileに関する膨大な経験がなく、例を追うのが難しいと感じています。Makefileディレクトリの使用

CC=g++ 

CFLAGS=-c -Wall 
LDFLAGS= -lSDL2 -lSDL2_image -lSDL2_ttf 
SOURCES=main.cpp hello.cpp factorial.cpp 
OBJS=$(SOURCES:%.cpp=%.o) 
EXECUTABLE=hello 
FULLOBJS = $(addprefix obj/,$(OBJS)) 


all: $(SOURCES) $(EXECUTABLE) 

$(EXECUTABLE): $(OBJS) 
    $(CC) $(LDFLAGS) $(OBJS) -o [email protected] 

.cpp.o: 
    $(CC) -MD -I. $(CFLAGS) $< -o [email protected] 

clean: 
    -rm -rf $(OBJS) $(EXECUTABLE) $(OBJS:%.o=%.d) 


-include $(OBJS:%.o=%.d) 

私が好きな作品:

は、私は、次のメイクファイルを持っています。しかし、.hpp .oと.bファイルを/ header// sourceと/ object/relativeサブディレクトリにきれいに整理できればさらに良いでしょう。どうすればいいか教えてください。

の.cppファイルを配置するためのおかげで非常に多くの

+0

.h、.cpp、.o用に別々のフォルダを作成し、これらのフォルダにパスを追加しますか? – CroCo

+0

可能であれば、はい。私は別々に各ファイルのパス文字列を指定するよりも良い方法があると仮定します。また、makefileで作成されたすべての.oと.dファイルを指定したディレクトリに配置する方法もあると仮定します。 – user7119460

答えて

0

を、VPATHは例えば、あなたの友達です:

VPATH = ./src ./blah 

... Makefileのは./srcであなたの.cppファイルを検索しますそして./blah(の代わりに、あなただけのメイクファイルがあるディレクトリ)

.hファイルのために、あなたは例えば、コンパイラにそれらを探しにそれを伝えるフラグを渡したいでしょう:

CXXFLAGS += -I./headers -I./blah 

.oファイルをサブフォルダに配置する方法は、hereです。

+0

ご協力いただきありがとうございます! VPATHの追加がそれほど単純ではないことを認識しませんでした! – user7119460

関連する問題