Ini makefile
akan menghasilkan pesan kesalahan 'pemisah yang hilang':
all
@echo NDK_PROJECT_PATH=$(NDK_PROJECT_PATH)
done:
@echo "All done"
Ada tab sebelum @echo "All done"
(meskipun done:
aturan dan tindakan sebagian besar berlebihan), tetapi tidak sebelum @echo PATH=$(PATH)
.
Masalahnya adalah bahwa garis awal all
harus memiliki titik dua :
atau sama dengan =
untuk menunjukkan bahwa itu adalah garis target atau garis makro, dan tidak memiliki keduanya, sehingga pemisah tidak ada.
Tindakan yang menggemakan nilai variabel harus dikaitkan dengan target, mungkin target dummy atau PHONEY. Dan garis target itu harus memiliki titik dua di atasnya. Jika Anda menambahkan :
setelah all
dalam contoh makefile
dan mengganti kosong di baris berikutnya dengan tab, itu akan berfungsi dengan baik.
Anda mungkin memiliki masalah analog di dekat baris 102 dalam dokumen asli makefile
. Jika Anda menunjukkan 5 baris non-kosong, non-komentar sebelum operasi gema yang gagal, mungkin akan mungkin untuk menyelesaikan diagnosis. Namun, sejak pertanyaan diajukan pada Mei 2013, kecil kemungkinan kerusakan makefile
masih tersedia sekarang (Agustus 2014), jadi jawaban ini tidak dapat divalidasi secara resmi. Ini hanya dapat digunakan untuk menggambarkan cara yang masuk akal di mana masalah terjadi.