Autor Tópico: problema em C  (Lida 5354 vezes)

Offline oiad

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
problema em C
« Online: 28 de Outubro de 2006, 19:12 »
boas a tds!
sou iniciante tanto em ubuntu cm em C.
tou a estudar ciência de computadores e tou a dar C em programação.
hoje tentei passar uns exercicios para o pc, compilá-los e executá-los para ver o seu resultado.
instalei o build-essential, usei o emacs para escrever o código e compilei com sucesso um exercicio, depois de resolver alguns erros.
usei o seguinte código para compilar o exercicio:
gcc -o teste teste.c
mas quando tento executar o ficheiro teste a linha de comandos diz-me que não encontra o comando e se eu tentar usando sh teste aparece a seguinte mensagem:
teste: teste: cannot execute binary file

alguém sabe qual poderá ser o problema e cm resolve-lo?

Offline Felix

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 3.068
    • Ver perfil
    • Alexsandro Felix
Re: problema em C
« Resposta #1 Online: 28 de Outubro de 2006, 19:46 »
"Nosso Primeiro Programa: O Clássico Alo Mundo!

Vamos escrever nosso primeiro programa em C. Inicialmente abra o editor de texto de sua preferência e edite o seguinte programa:

/*Alo mundo em C*/
main()
{
printf("Alo Mundo! \n");
}


Salve-o como alo.c e digite a seguinte linha de comando:

#gcc - o alo alo.c

o gcc irá gerar o executável alo, em seguida digite:
# ./alo

o promt irá retornar:
Alo Mundo!
#


(retirado e editado da apostila "Programando em C com o Linux - Parte I - O começo"
Por Antonio Marcelo
amarcelo@plebe.com.br
http://wwww.plebe.com.br)

Não sei se o site está no ar, mas se vc quiser tenho a apostila e posso enviar por e-mail, se interessar mande uma MP...

Obs.: espero que o exemplo ajude

Offline oiad

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
Re: problema em C
« Resposta #2 Online: 28 de Outubro de 2006, 19:57 »
já funciona, nao sabia que tinha que usar ./teste!
thanks ;)!

Offline cybertraveler

  • Usuário Ubuntu
  • *
  • Mensagens: 54
    • Ver perfil
Re: problema em C
« Resposta #3 Online: 30 de Outubro de 2006, 23:07 »
Sim. Quando você executa um programa, é preciso passar o endereço completo dele, a menos que ele esteja em algum local como /bin ou /etc/bin.

Offline kunigas

  • Usuário Ubuntu
  • *
  • Mensagens: 77
  • DK
    • Ver perfil
    • Página pessoal, Guilherme Kunigami
Re: problema em C
« Resposta #4 Online: 05 de Janeiro de 2007, 14:28 »
Olá.

Alguém sabe como fazer pra poder executar  o programa sem o "./" ?

Tentei adicionar esta linha ao meu .bash_profile:

Código: [Selecionar]
PATH=$PATH:$HOME/bin:./
Mas não está funcionando    :(

Offline Andre Cavalcante

  • Usuário Ubuntu
  • *
  • Mensagens: 51
    • Ver perfil
Re: problema em C
« Resposta #5 Online: 05 de Janeiro de 2007, 15:11 »
Tente só o
Código: [Selecionar]
PATH=$PATH:$HOME/bin

André Cavalcante
--------------
André Cavalcante
Manaus, AM

Offline kunigas

  • Usuário Ubuntu
  • *
  • Mensagens: 77
  • DK
    • Ver perfil
    • Página pessoal, Guilherme Kunigami
Re: problema em C
« Resposta #6 Online: 05 de Janeiro de 2007, 15:21 »
Olá.

Também não funcionou.

O que funcionou foi ter colocado o comando que eu postei no .bashrc e não no .bash_profile. Estranho  ???

Mas obrigado pela atenção.

Darcamo

  • Visitante
Re: problema em C
« Resposta #7 Online: 05 de Janeiro de 2007, 19:31 »
Se vc apenas escrever teste, o linux vai procurar o executável chamado teste em algumas pastas padrões do sistema (o /bin, /usr/bin, /usr/local/bin, etc).

Se seu programa está na pasta /home/fulano vc tem que usar o comando /home/fulano/teste pra executar o programa. Só que se vc já está no diretório /home/fulano você pode executar o programa apenas com ./teste
Isso ocorre porque o "." substitui o diretório atual. Logo ./teste vai ter o efeito de /home/fulano/teste
Por isso não dá pra tirar o "./"

Agora, quando vc inclui o diretório /home/fulano no PATH, o linux vai passar a olhar nessa pasta pra ver se acha um executável chamado "teste" quando vc tenta executar apenas "teste" no terminal. Aí a gente cai no primeiro caso e o seu programa vai funcionar sem o "./" (embora vc possa continuar a executálo com ./teste se quiser).

Offline alexmatos

  • Usuário Ubuntu
  • *
  • Mensagens: 792
  • Arch Linux / Ubuntu 7.04
    • Ver perfil
Re: problema em C
« Resposta #8 Online: 06 de Janeiro de 2007, 11:24 »
Não entendi qual seria a vantagem de executar sem o ./

Darcamo

  • Visitante
Re: problema em C
« Resposta #9 Online: 06 de Janeiro de 2007, 13:46 »
Realmente eu acho que é mais fácil simplesmente usar o ./ do que adicionar o diretório atual no PATH.
Mas se ele não gosta de colocar o ./ antes e prefere adicionar o diretório atual no PATH a escolha é dele.

Liberdade

Offline alexmatos

  • Usuário Ubuntu
  • *
  • Mensagens: 792
  • Arch Linux / Ubuntu 7.04
    • Ver perfil
Re: problema em C
« Resposta #10 Online: 06 de Janeiro de 2007, 14:16 »
Realmente eu acho que é mais fácil simplesmente usar o ./ do que adicionar o diretório atual no PATH.
Mas se ele não gosta de colocar o ./ antes e prefere adicionar o diretório atual no PATH a escolha é dele.

Liberdade

Compreendo e concordo. Porém, isso poderia causar problemas se existisse um executável no home com o mesmo nome de um programa instalado (ex.: gnuplot). Se eu desse o comando gnuplot no Terminal, qual dos dois seria executado? Haveria prioridades?

Offline tfmoraes

  • Usuário Ubuntu
  • *
  • Mensagens: 441
    • Ver perfil
Re: problema em C
« Resposta #11 Online: 06 de Janeiro de 2007, 23:05 »
que eu saiba ele começa a procurar o executavel na primeira pasta do path