Correção: Nenhum destino especificado e nenhum makefile encontrado.



Experimente Nosso Instrumento Para Eliminar Problemas

Esteja você trabalhando com Ubuntu, Debian ou Red Hat, poderá ver um erro que diz make: *** Nenhum destino especificado e nenhum makefile encontrado. Pare. Visto que este é um problema geral relacionado ao GNU Make como um todo, você pode vê-lo em inúmeras implementações do Unix. Isso significa que não há um arquivo chamado makefile ou Makefile em seu diretório de trabalho atual. Felizmente, esse é um erro fácil de corrigir.



Método 1: Encontrar um Makefile no diretório atual

Você pode tentar executar o faço comando mais uma vez no diretório atual para ver se o mesmo erro é lançado para você. Isso é especialmente importante se você abriu uma nova janela de terminal e já tentou localizar o diretório correto ou se usou o comando cd desde a última vez que tentou executar o GNU make.



Supondo que sim, tente executar o ls ou para você comando para ver quais arquivos estão em seu diretório atual. Você pode não estar na parte certa da árvore de diretórios. Se você notar que vê diretórios que pertencem ao seu diretório raiz / ou ao seu diretório home ~, você deseja executar o comando cd para se posicionar no lugar certo para executar o comando make.

Há uma chance de você se encontrar ainda mais longe de onde deveria estar. Em nosso exemplo, tentamos executar make a partir do diretório / var / crash e descobrimos que não funcionou de jeito nenhum. Não se pode esperar que ele seja executado a partir daqui, já que os únicos arquivos neste local específico são de relatórios de falha não relacionados.

Mais do que provavelmente, você vai querer executar o comando make a partir de um diretório que está localizado em algum lugar dentro de seu diretório inicial. Por exemplo, se você estivesse compilando a versão mais recente do GNU nano a partir do código-fonte, provavelmente teria um diretório localizado em ~ / nano-2.9.6 para o qual você poderia fazer um cd e executar o make novamente. Você pode querer tentar correr ls mais uma vez antes de tentar garantir que haja um makefile localizado no diretório para você compilar.

Lembre-se de que você precisa primeiro configurar a instalação. O comando configure cria o ambiente perfeito para o desenvolvimento do compilador GNU. Se você não encontrar um makefile mesmo no diretório correto do projeto, execute ./configure enquanto você ainda está dentro dele, seguido pelo faço comando. Se compilar corretamente, você pode instalar seu projeto com sudo make install , mas lembre-se de que você não deseja construir nada como root, então você nunca desejará executar sudo make ou qualquer outra coisa fora da instalação.

Método 2: Especificando um Makefile Personalizado

Supondo que o problema foi resolvido, não há mais nada que você precise fazer. No entanto, existem dois casos de uso especiais a serem considerados se o método anterior não corrigiu seu problema. Ambos envolvem escrever seu próprio makefile para um projeto que você está configurando manualmente.

Você pode especificar um makefile personalizado cujo nome não seja literalmente makefile usando a opção -f. Por exemplo, se você tem um makefile de backup chamado makefile.bak, você pode especificá-lo executando make -f makefile.bak da linha de comando. Você pode substituir makefile.bak por qualquer nome de arquivo e incluir a opção -i se desejar ignorar erros em um makefile personalizado ou desatualizado enquanto o compilador está em execução. Isso geralmente não é recomendado, já que você provavelmente vai querer editar seu makefile se houver algo errado com ele.

O outro caso de uso intimamente relacionado envolve uma situação em que a distinção entre maiúsculas e minúsculas é um problema. A seguir estão todos os arquivos separados no modo Unix de fazer negócios:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Programas com configuração personalizada podem não ser capazes de reconhecer um makefile com letras maiúsculas ímpares. Se você o escreveu à mão para um projeto de codificação no qual está trabalhando, provavelmente desejará renomeá-lo como makefile, embora possa usar a opção -i para garantir que o GNU make seja capaz de encontrá-lo. Lembre-se de que se você escreveu tudo corretamente, você ainda pode executar ./configure de seu próprio projeto para forçá-lo a gerar o ambiente certo e evitar esse problema, para começar.

3 minutos lidos