2014-10-06 24 views
0

我在Ubuntu上有一個程序,我的程序是由很多C文件組成的,當我製作程序時,它是如此的時間處理。但問題是,每次我只是從這些文件中更改一個特定的文件,每次我都應該在終端上寫入make,並且gcc開始再次創建所有文件。有沒有什麼辦法告訴gcc請製作那個我改變的文件?只是再次讓我改變的那個文件

+0

我認爲答案是讓它自己知道哪些是改變的。我在製作之前輸入「make clean」,原因是這樣的。但是現在我只需輸入make就可以避免再次編譯。對於這個簡單的問題抱歉。 – alex 2014-10-06 04:29:27

回答

2

製作文件是爲了這個目的。 編寫一個合適的makefile,包含依賴關係,每次運行它時只會更改文件將被編譯/鏈接。

C_SRCS := $(shell find $(SRC_DIR) -type f -name "*.c") #finds all C source file or you can explicitly give the names here 
C_OBJS := $(C_SRCS:.c=.o) #lists all the obj files 
CFLAGS := -C#required CFLAGS 
CC := #path to your c compiler 

$(C_OBJS): %.o : %.c 
    $(CC) $(CFLAGS) -c $< -o [email protected] 

all:$(C_OBJS) 
    echo done 

所以每次運行時使所有或使所有關鍵字將被觸發,並有C_OBJS的依賴,因此,如果最後OBJ文件的最後改變的時間戳小於源文件,然後將這些源文件會重新編譯。

相關問題