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.c
có sẵn, GNU make
sử dụng cc
. Nếu có tồn tại test.cpp
hoặc test.cc
(khi không có test.c
), nó sử dụng g++
(và không c++
).
make
kiể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ó,make
sẽ chỉ ra cách làm;)