Make file đơn giản trong C

CC = gcc
VPATH =   src
CFLAGS =  -I include 

main: main.o
	$(CC) -o main main.o

%.o: %.c include/main.h
	$(CC) $(CFLAGS) -c $<  

.INTERMEDIATE: main %.o

.PHONY: clean
clean:
	rm -f *.o  main 

Luôn luôn cuối cùng là xóa file main. Cho em hỏi chuyện gì đã xảy ra cảm ơn mọi người.

https://www.gnu.org/software/make/manual/html_node/Special-Targets.html

2 Likes

Anh có thể nói sơ bộ không anh! Em không tốt anh văn. Em dùng .INTERMEDIATE để update lại file đã tồn tài( Em chỉ hiểu đơn giản).
https://www.gnu.org/software/make/manual/html_node/Chained-Rules.html#Chained-Rules

tồn tại

Có cái gì đó sai sai ở đây…

sao sai vậy anh! Em sử dụng rất bình thường.

Ok em hiểu rồi! Đọc kĩ lại cuốn sách thì nó viết đơn giản hơn! Có thể cho em gợi ý giải quyết vấn đề đc không?

Mặc định makefile nó là quá trình chạy đống lệnh bạn đặt ra, ngoài ra nó thêm 1 số chức năng lưu trữ lại các file object để tránh phải compile lại,…
Việc chạy INTERMEDIATE dùng cho các file TRUNG GIAN thôi, thằng main nó là app thành quả thì bạn set nó làm trung gian làm gì, mà mặc định nếu không care nhiều thì bỏ option này đi, nó có bug ở các v 3.8x
Sài CMake có lẽ sẽ đỡ đau đầu hơn, nó tự op cho bạn

2 Likes

Em đang học make file anh! Em sẽ tìm hiểu thêm!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?