Por que devo digitar “./” quando quero executar um aplicativo compilado pelo GCC no Linux?

0

Meu sistema operacional é o Fedora Linux 14.

Eu escrevo um programa com o Code :: Blocks IDE e ele compila meu programa com o GCC.

Meu programa de saída é test . Quando inicio meu aplicativo no Code :: Blocks ele inicia normalmente. Mas quando clico duas vezes no meu programa executável, o programa não inicia. Quando eu inicio um terminal (no caminho do meu programa binário), e digito test , meu programa não inicia, mas quando eu digito ./test no terminal, ele inicia normalmente. Por que devo digitar ./ quando eu quiser executar um aplicativo?

    
por Amir Saniyan 10.10.2011 / 16:34

4 respostas

8

./ é necessário quando a variável de ambiente PATH não inclui o diretório atual. Portanto, se você tiver um executável em algum diretório que não esteja em seu caminho, precisará de ./theexecutable para informar ao shell que seu executável está no diretório atual.

    
por 10.10.2011 / 16:36
4

Simplesmente porque o diretório atual . , normalmente não é incluído na variável PATH.

Se você não souber o que digitar ./ , poderá adicionar . à lista de pastas separadas por dois pontos contida no PATH, mas isso não é recomendado, pois seria fácil mascarar os comandos do sistema sem perceber.

    
por 10.10.2011 / 16:36
2

Quando você apenas digitar o nome do programa, o * nix irá procurar em todos os seus locais PATH para esse nome. Se não encontrar, não será iniciado. Então você deve digitar "./" para indicar o diretório atual.

    
por 10.10.2011 / 16:37
0

Além do que as outras respostas informam:

Quando você digita test , provavelmente está chamando /bin/test ; man test para detalhes.

Quando você clica duas vezes no executável (do nautilus ou algo semelhante, sim?), provavelmente ele é executado, mas sem um terminal você não consegue ver a saída.

    
por 10.10.2011 / 21:11

Tags