簡體   English   中英

如何在 Mac OS X 終端上使用 make 編譯 C 程序

[英]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 中我看到了makemakefile屬性。

有沒有人對我應該怎么做才能使用 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


僅供參考,這是我遇到問題的方式以及解決方法:

  1. 輸入下面的代碼,並將其保存在名為“ex1”的文件中

     int main(int argc, char *argv[]) { puts("Hello world."); return 0; }
  2. 在終端輸入make ex1
  3. 收到錯誤消息make: Nothing to be done for 'ex1'.

如您所見,我的錯誤是源代碼的文件名應該是ex1.c ,而不是ex1

當我將文件名更改為 ex1.c 並執行make ex1 ,它起作用了。

在此處輸入圖片說明

make [FileName]

./[FileName]

如果文件名為 test.c 並保存在桌面中,則命令為:

cd Desktop

make test

./test

暫無
暫無

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

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