Tôi đã sử dụng Makefile từ cuốn sách " Advanced Linux Lập trình (2001)" [code] . Thật kỳ lạ đối với tôi khi thấy GNU make thực hiện biên dịch mã chính xác mà không chỉ định trình biên dịch trong Makefile. Nó giống như nướng mà không có bất kỳ công thức!
Đây là phiên bản tối thiểu của mã:
kiểm tra
int main(){}
Makefile
all: test
và làm cho thực sự hoạt động! Đây là lệnh nó thực thi:
cc test.c -o test
Tôi không thể tìm thấy bất cứ điều gì hữu ích trong tài liệu. Làm thế nào điều này là có thể?
PS Một lưu ý bổ sung: Ngay cả ngôn ngữ không được chỉ định; Vì test.ccó sẵn, GNU makesử dụng cc. Nếu có tồn tại test.cpphoặc test.cc(khi không có test.c), nó sử dụng g++(và không c++).
makekiểm tra tủ lạnh của bạn và phát hiện ra có sẵn một số bột, sau đó nướng một chiếc bánh mặc định cho bạn từ công thức nội bộ của nó. :-)
makeđể đun sôi nước, và sử dụng các quy tắc nội bộ của nó,makesẽ chỉ ra cách làm;)