Conforme indicado no manual online , a causa mais comum desse erro é que as linhas são recuadas com espaços quando se makeespera caracteres de tabulação.
Para mim, o problema era que eu tinha alguns comentários de final de linha # ...incorporados a uma define ... endefdefinição de variável de várias linhas. A remoção dos comentários fez com que o problema desaparecesse.
Obrigado. Eu não sabia que os comentários na definediretiva são tratados literalmente. Na verdade, o comportamento não é explicado na documentação . (Para fins de clareza: incorporar um sinal numérico #à diretiva não é, por si só, um erro de sintaxe. Mas não é interpretado como o início de um comentário, portanto, é provável que isso
aconteça
3
Meu erro ocorreu em uma linha de declaração variável com uma extensão de várias linhas. Eu tenho um espaço à direita após o "\", que tornou essa continuação de linha inválida.
MY_VAR = \
val1 \ <-- 0x20 there caused the error.
val2
No meu caso, o mesmo erro foi causado porque dois pontos :estavam ausentes no final como em staging.deploy:. Portanto, observe que pode ser um erro de sintaxe fácil.
Eu tinha o arquivo separador ausente no Makefiles gerado pelo qmake. Eu estava portando o código Qt para uma plataforma diferente. Eu não tinha QMAKESPEC nem MAKE definido. Aqui está o link que eu encontrei a resposta:
Então, aparentemente, tudo que eu precisava era do pacote "build-essential", para rodar autoconfprimeiro, o que fez o Makefile.pre.in, então o ./configureentão o makeque funciona perfeitamente ...
Respostas:
Conforme indicado no manual online , a causa mais comum desse erro é que as linhas são recuadas com espaços quando se
make
espera caracteres de tabulação.Corrigir
onde
\t
é TAB (U + 0009)Errado
onde cada
.
um representa um ESPAÇO (U + 0020).fonte
Apenas para sorrisos, e no caso de alguém encontrar um erro semelhante:
Eu recebi o infame erro "separador ausente" porque invoquei uma regra que define uma função como
ao invés de
ou seja, em
($
vez de$(
.fonte
0x20
"espaço" lá, está correto?$
Este é um erro de sintaxe no seu Makefile. É muito difícil ser mais específico do que isso, sem ver o arquivo em si ou partes relevantes.
fonte
Para mim, o problema era que eu tinha alguns comentários de final de linha
# ...
incorporados a umadefine ... endef
definição de variável de várias linhas. A remoção dos comentários fez com que o problema desaparecesse.fonte
define
diretiva são tratados literalmente. Na verdade, o comportamento não é explicado na documentação . (Para fins de clareza: incorporar um sinal numérico#
à diretiva não é, por si só, um erro de sintaxe. Mas não é interpretado como o início de um comentário, portanto, é provável que issoMeu erro ocorreu em uma linha de declaração variável com uma extensão de várias linhas. Eu tenho um espaço à direita após o "\", que tornou essa continuação de linha inválida.
fonte
No meu caso, erro causado a seguir. Eu tentei executar comandos globalmente, ou seja, fora de qualquer destino.
UPD. Para executar o comando globalmente, é preciso estar adequadamente formado. Por exemplo comando
se tornaria:
fonte
No meu caso, o mesmo erro foi causado porque dois pontos
:
estavam ausentes no final como emstaging.deploy:
. Portanto, observe que pode ser um erro de sintaxe fácil.fonte
No meu caso, estava faltando uma guia no meio
ifeq
e o comando na próxima linha. Não havia espaços para começar.Deveria ter ficado:
Observe que
<tab>
é um caractere de tabulação realfonte
No meu caso, esse erro foi causado pela falta de um mero espaço. Eu tinha isso se bloco no meu makefile:
que deveria ter sido:
com um espaço depois de se.
fonte
Eu tinha o arquivo separador ausente no Makefiles gerado pelo qmake. Eu estava portando o código Qt para uma plataforma diferente. Eu não tinha QMAKESPEC nem MAKE definido. Aqui está o link que eu encontrei a resposta:
https://forum.qt.io/topic/3783/missing-separator-error-in-makefile/5
fonte
Então, aparentemente, tudo que eu precisava era do pacote "build-essential", para rodar
autoconf
primeiro, o que fez oMakefile.pre.in
, então o./configure
então omake
que funciona perfeitamente ...fonte
O seguinte código Makefile funcionou:
fonte