2016-01-14 134 views
-1

我正在爲類的任務工作,我們將從代碼文件所在的類服務器開始工作。如何從終端運行C代碼?

我已經將文件複製到我的主目錄,並且一直在使用vim進行編輯(因爲我的教師出於某種原因喜歡使用emacs)。

但是,我如何真正測試我的代碼?提供make文件,當我輸入make test.c時,我找回了make: Nothing to be done for test.c。我不明白爲什麼會發生這種情況,因爲我在main中有第一行的打印聲明。這不應該至少跑?另外,如何在使用make時將參數傳遞給main函數test.c

作爲一個側面的問題,這個服務器也沒有gdb,出於某種原因。我確定有其他安裝方式,我只是不知道它會被調用來嘗試看看它是否在這裏。

+0

你真的讀過makefile嗎?你知道如何調用可執行文件嗎? –

+0

你知道「彙編」是什麼意思嗎? – Arc676

+1

'make' *可能*只是編譯你的程序 - 而不是編譯和運行它 - 而且你沒有正確使用它。查看'Makefile'內部的目標列表(它們以'target-name:'形式在它們各自行的開始處)。 'make test'可能是正確的。然後你可以像往常一樣運行你的程序並傳遞參數,例如'./測試一些參數'。 – Ryan

回答

2

make的說法通常是您希望它創建的東西。由於test.c已經存在,所以make test.c什麼都不做。 make test應編譯test.c創建test。不帶參數的make使用Makefile中指定的默認目標;在你的情況下,它可能與make test相同。

make命令不會運行您的程序;它會創建一個可以運行的可執行文件。

一旦你輸入makemake test,你應該能夠通過輸入

./test 

./重要的是要執行程序;沒有它,你可能會調用shell的內置test命令,這不是你想要的。

0

也許u需要的是僅此版本的命令:

gcc test.c -o test 

然後:

./test 

有一個嘗試。^_^

0

我想你需要一些基本的知識make。您應該閱讀makefile的一些基本書籍,並實際嘗試一下。如果你只是試圖將概念貼在你的腦海中,但從來沒有真正嘗試過,你永遠不會得到它。

結賬this問題。它要求在GNU Make上有很好的教程。另外,以便您可以直接轉到鏈接,thisthis是主要答案中提到的鏈接。