簡體   English   中英

如何使用頭文件進行編譯並創建一個 Makefile - C

[英]How to compile with headers and a create a Makefile - C

我正在嘗試使用按照以下結構組織的源代碼編譯和創建 Makefile:

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

那里編寫的代碼已經在 IDE 上進行了測試,所以我知道它可以工作。 我只需要編譯它,但我不知道如何執行 2 個擴展名為 .c 的文件和 .h 文件。 另外,我需要為此創建一個makefile。

怎么樣?

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

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

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

您不執行.c文件,而是將它們提供給 C編譯器 我推薦使用GCC (或者Clang/LLVM )作為你的 C 編譯器。

您可能應該將CC make 變量(它提供默認的 C 編譯器)設置為gcc ,並將CFLAGS變量(它提供默認的編譯器標志)。

所以請閱讀有關Invoking GCC 的文檔。 您肯定希望使用所有警告和調試信息進行編譯。

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

 CC= gcc
 CFLAGS= -Wall -Wextra -g

當然,您的Makefile還需要其他行。 我讓你閱讀更多並進行實驗。 應該是鼓舞人心的。

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

所以我讓你你的Makefile 將其視為源代碼,因此請謹慎備份和版本控制。

順便說一句,對於像您這樣的小程序,我認為擁有src/include/目錄沒有用,而且我相信引入build/目錄只會增加不必要的復雜性。 天啊。

那里編寫的代碼已經在 IDE 上進行了測試,所以我知道它可以工作。

這可能是一種錯覺。 有時,您可能會因為某些未定義的行為而倒霉,這些行為只是“看起來”有效,但實際上是一個錯誤。 請參閱此答案並按照我在那里提供的鏈接進行操作。

有許多使用make構建的免費軟件項目; github和其他地方尋找一些。 有時Makefile是自己生成的(例如使用cmakeqmakeautoconf ),但這在您的簡單情況下是不值得的。

附注。 不要指望 StackOverflow 來做你的功課。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM