我試圖編譯,使下一個結構的一個Makefile:如何用頭編譯和創建一個Makefile - Visual C
|-- build
|-- include
| \-- functions.h
\-- src
|-- functions.c
\-- main.c
編寫的代碼已經在IDE測試,所以我知道有用。我只需要編譯它,但idk如何執行2 .c文件和.h文件。另外,我需要製作一個makefile。怎麼樣?
謝謝。
我試圖編譯,使下一個結構的一個Makefile:如何用頭編譯和創建一個Makefile - Visual C
|-- build
|-- include
| \-- functions.h
\-- src
|-- functions.c
\-- main.c
編寫的代碼已經在IDE測試,所以我知道有用。我只需要編譯它,但idk如何執行2 .c文件和.h文件。另外,我需要製作一個makefile。怎麼樣?
謝謝。
甲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編譯器)爲gcc
和CFLAGS
變量(它給出了默認的編譯器標誌)。
因此請閱讀關於Invoking GCC的文檔。您當然想要編譯所有警告和調試信息。
因此,我建議有以下兩行的Makefile
CC= gcc
CFLAGS= -Wall -Wextra -g
當然,你需要在你Makefile
其他線路。我留給你閱讀更多和實驗。 This和that應該是鼓舞人心的。
您可能想在您的Makefile
中提及對頭文件的依賴關係。
因此,我給你留下寫你的Makefile
。考慮它爲source code,所以備份和版本控制它仔細。
順便說一句,對於像你這樣的小程序,我不認爲有src/
和include/
目錄是有用的,我相信介紹一個build/
目錄只是增加了不必要的複雜性。因人而異。
這裏寫的代碼已經在IDE上測試過了,所以我知道它的工作原理。
這可能是一種幻覺。有時你可能會碰到一些undefined behavior,它們只是「出現」工作,但卻是一個錯誤。請參閱this answer並按照我給出的鏈接。
有很多free software項目與make
建成;看看github和其他地方找一些。有時候,Makefile
本身就會生成(例如,使用cmake,qmake或autoconf),但在您的簡單情況下這並不值得。
PS。不要指望StackOverflow做你的功課。
[閱讀本文](https://www.gnu.org/software/make/manual/make.html)可能會幫助您開始。 – alk
StackOverflow不是一個做我的作業服務,但你應該用它來學習的東西,並提問一些[MCVE] –
先嚐試一些更簡單,比如沒有makefile的HelloWorld。 – Beta