2013-02-03 86 views
0

我試圖使用這個makefile,並按照給出的內容輸入它,但是因爲它在下面,它會爲第2行拋出一個「丟失的分隔符」錯誤。使得「命令在第一個目標之前開始」

/usr/bin/gcc -pipe -Wall -O3 -fomit-frame-pointer -march=native pidigits.c -o pidigits.gcc_run -lgmp 
rm pidigits.c 

我看到錯誤並在'rm'操作符之前添加了一個選項卡,但之後它給出了「命令在第一個目標之前開始」的錯誤。 我試着在每行之前添加製表符,還有一個製表符前面的管道和前面的rm,但沒有任何效果。 有什麼建議嗎?我確信我只是錯過了一些明顯的東西......這是我第一次嘗試寫一個makefile。

謝謝!

+0

你能否提供更多的makefile文件? – Necto

+0

這就是我的全部。從未做過makefile,所以不知道我在做什麼。 – Johonn

+0

它看起來更像是一個shell腳本。所以你可能想用'sh makefile'來運行它。如果你確實需要一個makefile,我建議你在http://www.gnu.org/software/make/manual/html_node/index.html – Necto

回答

0

如果我讀這正確,你希望你的makefile來looke,如:

foo_rule: 
\t/usr/bin/gcc -pipe -Wall -O3 -fomit-frame-pointer -march=native pidigits.c -o pidigits.gcc_run -lgmp; \ 
rm pidigits.c 

其中\ t是一個標籤。

+0

是否應該是\ t或只是一個\?謝謝! – Johonn

+0

好的,我添加了你建議的元素。現在它會拋出關於命令行選項-03的錯誤。我以前有過類似的經歷。我需要在我的系統上安裝其他東西嗎? 很抱歉,如果這些都是愚蠢的問題。 – Johonn

+0

@Johonn,那只是一個尾隨的斜線。實際上爲一個規則中的每個命令調用一個單獨的shell。尾部的斜線將第二行連接到第一行,因此它全部作爲一個命令運行。 你會分享O3錯誤嗎?我的GCC版本支持這種優化級別。 –

相關問題