Điều này makefile
sẽ tạo ra thông báo lỗi 'thiếu dấu phân cách':
all
@echo NDK_PROJECT_PATH=$(NDK_PROJECT_PATH)
done:
@echo "All done"
Có một tab trước @echo "All done"
(mặc dù done:
quy tắc và hành động phần lớn là thừa), nhưng không phải trước @echo PATH=$(PATH)
.
Vấn đề là dòng bắt đầu all
phải có dấu hai chấm :
hoặc dấu bằng =
để chỉ ra rằng đó là dòng đích hoặc dòng macro và không có, vì vậy dấu phân cách bị thiếu.
Hành động lặp lại giá trị của biến phải được liên kết với mục tiêu, có thể là mục tiêu giả hoặc PHONEY. Và dòng đích đó phải có dấu hai chấm trên đó. Nếu bạn thêm một:
sau all
trong ví dụ makefile
và thay thế các khoảng trống hàng đầu trên dòng tiếp theo bằng một tab, nó sẽ hoạt động hoàn toàn.
Bạn có thể có một vấn đề tương tự gần dòng 102 trong bản gốc makefile
. Nếu bạn đã hiển thị 5 dòng không trống, không bình luận trước các hoạt động tiếng vang không thành công, có thể có thể kết thúc chẩn đoán. Tuy nhiên, vì câu hỏi đã được hỏi vào tháng 5 năm 2013, không chắc makefile
là hiện tại vẫn chưa có sẵn (tháng 8 năm 2014), vì vậy câu trả lời này không thể được xác nhận chính thức. Nó chỉ có thể được sử dụng để minh họa một cách hợp lý trong đó vấn đề xảy ra.