簡體   English   中英

如何創建Makefile以在C中編譯單個任意文件名

[英]How to create Makefile to compile a single arbitrary filename in C

我是C編程的新手,我想知道在Makefile中編寫什么來編譯單個.c文件。

假設我在一個文件夾中有多個.c文件),即sample1.csample2.csample3.c等,我只想編譯一個特定的文件名。 我想只輸入“ make sample2 ”,它將編譯並有一個名為sample2的輸出(幾乎保留.c名稱)。

我已經閱讀了幾個解決方案,有人可能會提出這個建議,但沒有成功。

SRC =  $(shell find . -type f -name \*.c)

executable: $(SRC:.c=.o)
    gcc -std=gnu99  $@ $^ 

我需要做些什么來使它工作?

將評論轉換為答案。

你不需要makefilemake sample2將編譯sample2.c來創建程序sample2

如果需要,可以使用/dev/null作為makefile的名稱(或者如果需要忽略現有的makefile ):

make -f /dev/null sample2

當然,這會使用默認選項進行編譯。 如果你想使用更嚴格的標志,那么你可以這樣做(假設現有的makefile是可消耗的):

echo 'CFLAGS = -Wall -Wextra -Werror -std=c11 -O3 -g' > makefile
make sample2

或該主題的一些變體,例如:

make -f /dev/null CFLAGS="-Wall -Wextra -Werror -std=c11 -O3 -g" sample2

簡而言之, make知道如何將單個C文件編譯成相應名稱的可執行文件(減去.c后綴),而不需要任何顯式的makefile 如果需要,您可以調整它如何編譯該文件。

暫無
暫無

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

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