2013-03-21 103 views
1

我的最終可執行文件(這是在unix中)將是proj07。gcc makefile不會編譯

proj07: /user/cse320/Projects/project07.driver.o proj07.support.o 
    gcc -Wall /user/cse320/Projects/project07.driver.o proj07.support.o 

proj07.support.o: proj07.support.c 
    gcc -c proj07.support.c 

這將創建proj07.support.o,但編譯後不存在proj07。我沒有得到一個錯誤,所以我的錯誤必須是簡單的,但我似乎無法弄清楚。

下面是輸出:

gcc -c proj07.support.c 
gcc -Wall /user/cse320/Projects/project07.driver.o proj07.support.o 

而且我是用一個靜態的驅動程序來測試我的文件,這就是爲什麼路徑就是這樣

+2

默認情況下,編譯的輸出名爲a.out。你必須添加一個-o標誌給gcc來改變它。查看gcc的man手冊(man gcc)。 – fuz 2013-03-21 23:57:06

回答

3

你可能有一個a.out可執行文件。將-o [email protected]添加到您的第一個gcc事件中,您應該沒問題。

+0

工作!謝謝!那只是給gcc添加一個速記標誌?是的,我確實有一個a.out,但我沒有想到要檢查它,因爲我在我所在的目錄中編譯了其他內容,所以我知道它並沒有改變。很高興知道,儘管 – tausch86 2013-03-22 00:00:13

+0

Nope'$ @'是'makefile'中的簡寫符號,代表規則的目標。 – 2013-03-22 00:01:09