2017-10-15 90 views
0

我試圖編譯,使下一個結構的一個Makefile:如何用頭編譯和創建一個Makefile - Visual C

|-- build 
|-- include 
| \-- functions.h 
\-- src 
|-- functions.c 
\-- main.c 

編寫的代碼已經在IDE測試,所以我知道有用。我只需要編譯它,但idk如何執行2 .c文件和.h文件。另外,我需要製作一個makefile。怎麼樣?

謝謝。

+1

[閱讀本文](https://www.gnu.org/software/make/manual/make.html)可能會幫助您開始。 – alk

+1

StackOverflow不是一個做我的作業服務,但你應該用它來學習的東西,並提問一些[MCVE] –

+0

先嚐試一些更簡單,比如沒有makefile的HelloWorld。 – Beta

回答

1

Makefile只是一些文本文件(其中標籤字符是顯著至少當它們啓動命令行)。使用一些source code editor來創建或改進它;我更喜歡GNU emacs所以推薦它,但你可以使用其他編輯器(例如vim,gedit等),這是一個品味問題。順便說一句,不要忘記使用一些版本控制系統(我建議git)。

在創建您的Makefile之前,您需要花些時間閱讀documentation of make。請注意衆多內置規則(您可以通過運行make -p獲得)並利用它們。

如何執行2個.c文件和.h文件。

你不執行.c文件,但它們提供給您的C compiler。我建議使用GCC(或者可能是Clang/LLVM)作爲C編譯器。

你可能應該設置CC使變量(它給出了默認的C編譯器)爲gccCFLAGS變量(它給出了默認的編譯器標誌)。

因此請閱讀關於Invoking GCC的文檔。您當然想要編譯所有警告和調試信息。

因此,我建議有以下兩行的Makefile

CC= gcc 
CFLAGS= -Wall -Wextra -g 

當然,你需要在你Makefile其他線路。我留給你閱讀更多和實驗。 Thisthat應該是鼓舞人心的。

您可能想在您的Makefile中提及對頭文件的依賴關係。

因此,我給你留下你的Makefile。考慮它爲source code,所以備份和版本控制它仔細。

順便說一句,對於像你這樣的小程序,我不認爲有src/include/目錄是有用的,我相信介紹一個build/目錄只是增加了不必要的複雜性。因人而異。

這裏寫的代碼已經在IDE上測試過了,所以我知道它的工作原理。

這可能是一種幻覺。有時你可能會碰到一些undefined behavior,它們只是「出現」工作,但卻是一個錯誤。請參閱this answer並按照我給出的鏈接。

有很多free software項目與make建成;看看github和其他地方找一些。有時候,Makefile本身就會生成(例如,使用cmake,qmakeautoconf),但在您的簡單情況下這並不值得。

PS。不要指望StackOverflow做你的功課。