Executando Programas C no Linux

3

Eu assisti a uma palestra em vídeo hoje que apresentou o C e coisas como fazer um programa em C que será executado no Linux. Eu segui os passos dados e agora estou com um problema.

Eu criei meu arquivo C (HelloWorld.c) e usei o comando gcc -o HelloWorld HelloWorld.c para compilar o arquivo, ambas as etapas foram bem-sucedidas. Depois disso, verifiquei se o HelloWorld havia sido criado usando o comando ls , e foi. No entanto, quando eu uso o comando HelloWorld , que deve executar o programa, recebo um erro que diz HelloWorld: command not found .

Na palestra em vídeo, o professor mencionou que isso funcionava para sistemas de 32 bits e estou usando um sistema de 64 bits. Talvez este possa ser o problema?

EDIT: Também na palestra em vídeo o professor mencionou que quando eu uso o comando ls eu deveria ver HelloWorld* . Eu vejo apenas HelloWorld (sem a estrela).

    
por brewer2 03.05.2011 / 22:27

2 respostas

10

Você não tem o valor da variável de ambiente PATH definida para incluir o diretório em que o arquivo executável HelloWorld reside.

Supondo que você tenha usado cd para chegar ao diretório, você pode executar o HelloWorld com este comando: ./HelloWorld

Unix shells têm uma variável chamada PATH , que é uma lista de diretórios : -delimited na qual procurar quando o usuário emite um comando sem um nome de caminho completo ( /usr/bin/ls é totalmente qualificado: começa em / e termina em ls , mas ls não é totalmente qualificado por si só). Se você não tiver uma entrada de . em PATH , você terá que usar explicitamente ./ no início de um comando para executar o arquivo com esse nome no diretório atual.

    
por 03.05.2011 / 22:42
3

Use ls -F para ver uma estrela no final do nome do arquivo. Se você usa ls do GNU coreutils, você pode definir a variável de ambiente LS_OPTIONS para incluir automaticamente este e qualquer outro número de opções para você. As opções para ls estão listadas no manual ls , para vê-las serem executadas: man ls

@ brewer2: definir variáveis de ambiente no login é específico do shell e uma boa pergunta por si só.

    
por 03.05.2011 / 22:50