2016-02-04 29 views
0

我很難嘗試創建一個根目錄下的makefile,然後將其放入另一個名爲「code」的目錄中,這就是我的代碼將被編譯的地方。也可執行則需要被放置在一個新的目錄,就會創建一個叫「斌」,這將是在根目錄下我有這個至今:改變目錄然後編譯代碼的Makefile

all: bin/main 

test: bin/main 

bin/main: main.cpp 
    mkdir -p bin 
    g++ -std=c++11 -Wall -Werror -ansi -pedantic -o bin/program main.cpp 

注:我需要這兩個目標都與測試。但是,如果我的代碼已經在根本作(以上)才起作用

UPDATE:重命名的代碼目錄爲src,這裏是新的makefile

all: 
mkdir -p ./bin 
g++ -std=c++11 -Wall -Werror -ansi -pedantic ./src/main.cpp -o./bin/prgm 

測試: 的mkdir -p ./bin g ++ -std = C++ 11 -Wall -Werror -ansi -pedantic ./src/main.cpp -o ./bin/prgm

但是現在我得到這個錯誤「make:*** makefile:is a目錄。停止。「 我試圖正確運行它嗎?我這樣做「$ make」

+0

我在這裏沒有看到實際的問題。你對你的應用程序的需求感到困惑。這不是任何人都可以回答的。只有你知道你的應用程序源代碼的佈局。一旦你弄清楚你的源代碼是什麼樣子的,以及需要什麼樣的實際命令來編譯,那麼編寫Makefile的任務就開始了。 –

+0

將main.cpp更改爲code/main.cpp? – immibis

+0

通常的做法是生成文件在父目錄中工作,並且.cpp文件包含父目錄的相對路徑。 –

回答

1

這裏最簡單的一點就是,你可以做更多的事情,比如製作目標all等等,以保持示範簡單。

all: 
    - mkdir -p bin 
    g++ -std=c++11 -Wall -Werror -ansi -pedantic -o bin/program src/main.cpp 

希望,你可以找出目標test

+0

謝謝你的建議,但我仍然得到這個錯誤「make:*** makefile:是一個目錄。停止。」我的根只包含代碼所在的Makefile和src目錄。我不確定這個錯誤究竟意味着什麼,以及如何解決它。 –

+0

你是否在'mkdir'行添加了'-'?如果沒有,請這樣做 – dlmeetei

+0

Thx大聲笑它現在的作品! –

相關問題