01/10/2018, 12:04

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.

Dark.Hades viết 14:04 ngày 01/10/2018

.INTERMEDIATE: main %.o

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

nghia viết 14:17 ngày 01/10/2018

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

HK boy viết 14:18 ngày 01/10/2018

tồn tài

tồn tại

clean:
rm -f *.o main

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

nghia viết 14:07 ngày 01/10/2018

clean:
rm -f *.o main

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

nghia viết 14:08 ngày 01/10/2018

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?

Dark.Hades viết 14:18 ngày 01/10/2018

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

nghia viết 14:18 ngày 01/10/2018

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

Bài liên quan
0