Por que alguns comandos são executados corretamente somente quando o arquivo sendo chamado está dentro do diretório de trabalho?

2

Não consigo fazer um arquivo com êxito quando faço o seguinte comando

make /home/me/Desktop/folderWithMakefile

No entanto, um executável é criado quando faço o seguinte

cd /home/me/Desktop/folderWithMakefile
/home/me/Desktop/folderWithMakefile 
make
    
por user784637 09.09.2011 / 08:44

4 respostas

3

O comando make procura por Makefile no diretório atual por padrão. Para o primeiro comando que você listou para trabalhar, você precisaria de um Makefile no diretório atual que continha uma /home/me/Desktop/folderWithMakefile de destino.

Se você quiser executar make no contexto de um diretório diferente (e, portanto, escolher um Makefile diferente), poderá usar a opção -C . Por exemplo:

make -C /home/me/Desktop/folderWithMakefile [target]
    
por James Henstridge 09.09.2011 / 10:13
2

O Makefile contém caminhos relativos, que são relativos ao seu diretório atual. Quando você não está no diretório onde estão os codefiles, os comandos não encontrarão os arquivos necessários ...

    
por falstaff 09.09.2011 / 08:53
0

O argumento dado para fazer não é o diretório a ser usado, mas o make-target que deve ser construído.

    
por Thomas 09.09.2011 / 09:59
0

use make -C /home/me/Desktop/folderWithMakefile

    
por Michał Šrajer 09.09.2011 / 10:13