[英]How to compile a C program with make on Mac OS X Terminal
我最近買了一台 Macbook Pro,我想用終端用 C 語言編寫一些代碼。
我可以使用以下命令編譯代碼:
gcc filename.c –o filename
但我想用 make 命令編譯它,因為我知道這是最佳實踐,我想遵循最佳實踐。
make filename cc filename.c -o filename
這個命令給了我以下輸出:
make: Nothing to be done for `ex01'.
make: *** No rule to make target `cc'. Stop.
請注意,我已經安裝了 Xcode 和 Xcode 開發人員命令行工具,並且在文件夾/usr/bin 中我看到了make和makefile屬性。
有沒有人對我應該怎么做才能使用 makefile 和 cc 參數進行編譯有任何提示?
使用以下內容在同一路徑上創建一個名為Makefile
的文件:
CC = cc
CFLAGS = -std=c99 -pedantic -Wall
OBJECTS = filename.o
all: appname
filename.o: filename.c
$(CC) $(CFLAGS) -c filename.c
appname: $(OBJECTS)
$(CC) $(OBJECTS) -o appname
clean:
rm -f *.o appname
然后運行:
make
當然,將appname
替換為您的程序名稱
注意:之前必須有一個“制表符”(不是空格)
$(CC) $(CFLAGS) -c filename.c
和
$(CC) $(OBJECTS) -o appname
我正在遵循相同的教程,並遇到了類似的問題。
我不知道你到底做了什么,但我認為錯誤是運行了錯誤的命令。 您輸入了make filename cc filename.c -o filename
,但教程指示我們使用make filename
,而沒有cc filename.c -o filename
部分。 也許你讀的是舊版本?
而且, make filename
工作正常, 您不需要 Makefile 。
僅供參考,這是我遇到問題的方式以及解決方法:
輸入下面的代碼,並將其保存在名為“ex1”的文件中
int main(int argc, char *argv[]) { puts("Hello world."); return 0; }
make ex1
make: Nothing to be done for 'ex1'.
如您所見,我的錯誤是源代碼的文件名應該是ex1.c ,而不是ex1 。
當我將文件名更改為 ex1.c 並執行make ex1
,它起作用了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.