Trái ngược với những gì?
Giả sử bạn có một chương trình mà bạn đã chia thành hai tệp, mà bạn có tên file1.c
và trí tưởng tượng file2.c
. Bạn có thể biên dịch chương trình bằng cách chạy
cc file1.c file2.c -o yourprogram
Nhưng điều này đòi hỏi phải biên dịch lại cả hai tập tin mỗi lần, ngay cả khi chỉ có một thay đổi. Bạn có thể phân tách các bước biên dịch thành
cc -c file1.c
cc -c file2.c
cc file1.o file2.o -o yourprogram
và sau đó, khi bạn chỉnh sửa một trong các tệp, chỉ biên dịch lại tệp đó (và thực hiện bước liên kết bất kể bạn đã thay đổi điều gì). Nhưng điều gì sẽ xảy ra nếu bạn chỉnh sửa một tệp, rồi tệp kia
và bạn quên rằng bạn đã chỉnh sửa cả hai tệp và vô tình biên dịch lại chỉ một tệp?
Ngoài ra, ngay cả đối với chỉ hai tệp, bạn đã có các lệnh trị giá khoảng 60 ký tự ở đó. Điều đó nhanh chóng trở nên tẻ nhạt để gõ. OK, chắc chắn, bạn có thể đặt chúng vào một tập lệnh, nhưng sau đó bạn quay lại biên dịch lại mỗi lần. Hoặc bạn có thể viết một tập lệnh thực sự phức tạp, lạ mắt để kiểm tra tập tin nào đã được sửa đổi và chỉ thực hiện các phần tổng hợp cần thiết. Bạn có thấy tôi đang đi đâu với điều này không?