2011-08-14 99 views
2

我正在嘗試使用make構建越來越多的.cpp文件。它們都位於src /子目錄中。我想將每個文件編譯到它自己的可執行文件中,位於bin /中。 這是我到目前爲止所嘗試的,但它不起作用,而且由於我是新手,所有模式,變量等都難以確定什麼會擴展到什麼等等。Makefile - 從源生成目標

CXX = g++ 
CXXFLAGS = -Wall -Wextra -pedantic 

SRC = $(wildcard src/*.cpp) 
BIN = $(patsubst src/%.cpp,bin/%,$(SRC)) 

all: $(BIN) 

%: scr/%.cpp 
    $(CXX) $(CXXFLAGS) $< -o [email protected] 

此外,有沒有一種方法可以顯示BIN的內容,例如,讓我看看發生了什麼?

+1

有在做出許多公約,這將是明智的遵循。 CC是C編譯器,CXX是C++編譯器,CFLAGS是$(CC)的標誌,CXXFLAGS是$(CXX)的標誌,CPPFLAGS是預處理器的標誌。 –

回答

0

這是你的最終膨脹的樣子

file: scr/bin/file.cpp 

爲什麼不這樣做呢?

BIN = $(patsubst src/%.cpp,%,$(SRC)) 

all: $(addprefix bin/, $(BIN)) 

bin/% : src/% 
    $(GCC) $(FLAGS) $< -o [email protected] 

我認爲這有效嗎?

至於顯示BIN內容

all: $(addprefix bin/, $(BIN)) 
    @echo $(BIN) 
+0

非常感謝!至少我不是那麼遙遠:-) – Psirus