Seperti ditunjukkan dalam manual online , penyebab paling umum untuk kesalahan itu adalah bahwa garis diindentasi dengan spasi saat makemengharapkan karakter tab.
Bagi saya, masalahnya adalah bahwa saya memiliki beberapa # ...komentar end-of-line yang tertanam dalam define ... endefdefinisi variabel multi-line. Menghapus komentar membuat masalah hilang.
Terima kasih. Saya tidak tahu komentar dalam definearahan diperlakukan secara harfiah. Sebenarnya perilaku itu tidak dijelaskan dalam dokumentasi . (Untuk kejelasan: Menyematkan tanda angka #di dalam direktif itu sendiri bukan kesalahan sintaks. Tapi itu tidak diartikan sebagai awal dari sebuah komentar, jadi melakukan hal itu memang cenderung rawan kesalahan.)
ynn
3
Kesalahan saya ada pada baris deklarasi variabel dengan ekstensi multi-baris. Saya memiliki spasi tambahan setelah "\" yang menjadikannya kelanjutan garis yang tidak valid.
MY_VAR = \
val1 \ <-- 0x20 there caused the error.
val2
Dalam kasus saya, kesalahan yang sama disebabkan karena titik dua :hilang pada akhirnya seperti pada staging.deploy:. Jadi catat bahwa itu bisa menjadi kesalahan sintaksis yang mudah.
Saya memiliki file pemisah yang hilang di Makefiles yang dihasilkan oleh qmake. Saya porting kode Qt ke platform yang berbeda. Saya tidak punya QMAKESPEC atau MAKE set. Inilah tautan yang saya temukan jawabannya:
Begitu rupanya, semua saya butuhkan adalah "build-essential" paket, maka untuk menjalankan autoconfpertama, yang membuat Makefile.pre.in, maka ./configuremaka makeyang bekerja sempurna ...
Jawaban:
Seperti ditunjukkan dalam manual online , penyebab paling umum untuk kesalahan itu adalah bahwa garis diindentasi dengan spasi saat
make
mengharapkan karakter tab.Benar
dimana
\t
TAB (U + 0009)Salah
di mana masing-masing
.
mewakili SPACE (U + 0020).sumber
Hanya untuk menyeringai, dan kalau-kalau ada orang lain mengalami kesalahan yang sama:
Saya mendapat kesalahan "pemisah yang hilang" yang terkenal karena saya telah menjalankan aturan yang mendefinisikan fungsi sebagai
daripada
yaitu
($
bukan$(
.sumber
0x20
"ruang" di sana, apakah itu benar?$
Ini adalah kesalahan sintaksis di Makefile Anda. Cukup sulit untuk lebih spesifik dari itu, tanpa melihat file itu sendiri, atau bagian yang relevan.
sumber
Bagi saya, masalahnya adalah bahwa saya memiliki beberapa
# ...
komentar end-of-line yang tertanam dalamdefine ... endef
definisi variabel multi-line. Menghapus komentar membuat masalah hilang.sumber
define
arahan diperlakukan secara harfiah. Sebenarnya perilaku itu tidak dijelaskan dalam dokumentasi . (Untuk kejelasan: Menyematkan tanda angka#
di dalam direktif itu sendiri bukan kesalahan sintaks. Tapi itu tidak diartikan sebagai awal dari sebuah komentar, jadi melakukan hal itu memang cenderung rawan kesalahan.)Kesalahan saya ada pada baris deklarasi variabel dengan ekstensi multi-baris. Saya memiliki spasi tambahan setelah "\" yang menjadikannya kelanjutan garis yang tidak valid.
sumber
Dalam kasus saya kesalahan yang disebabkan selanjutnya. Saya sudah mencoba menjalankan perintah secara global yaitu di luar target apa pun.
UPD. Untuk menjalankan perintah secara global, seseorang harus dibentuk dengan benar. Misalnya perintah
akan menjadi:
sumber
Dalam kasus saya, kesalahan yang sama disebabkan karena titik dua
:
hilang pada akhirnya seperti padastaging.deploy:
. Jadi catat bahwa itu bisa menjadi kesalahan sintaksis yang mudah.sumber
Dalam kasus saya, saya benar-benar kehilangan tab di antara
ifeq
dan perintah di baris berikutnya. Tidak ada ruang untuk memulai.Seharusnya:
Perhatikan bahwa
<tab>
ini adalah karakter tab yang sebenarnyasumber
Dalam kasus saya, kesalahan ini disebabkan oleh kurangnya ruang belaka. Saya punya ini jika memblokir di makefile saya:
yang seharusnya:
dengan spasi setelah jika.
sumber
Saya memiliki file pemisah yang hilang di Makefiles yang dihasilkan oleh qmake. Saya porting kode Qt ke platform yang berbeda. Saya tidak punya QMAKESPEC atau MAKE set. Inilah tautan yang saya temukan jawabannya:
https://forum.qt.io/topic/3783/missing-separator-error-in-makefile/5
sumber
Begitu rupanya, semua saya butuhkan adalah "build-essential" paket, maka untuk menjalankan
autoconf
pertama, yang membuatMakefile.pre.in
, maka./configure
makamake
yang bekerja sempurna ...sumber
Kode Makefile berikut berfungsi:
sumber