Autor Tópico: [Resolvido]Não aparece nada quando compilo em c/c++  (Lida 2425 vezes)

Offline marco_smachado

  • Usuário Ubuntu
  • *
  • Mensagens: 26
    • Ver perfil
[Resolvido]Não aparece nada quando compilo em c/c++
« Online: 08 de Fevereiro de 2009, 18:03 »
Quando eu compilo um arquivo .c ou .cpp não aparece nada. Estou fazendo assim: gcc -o meu teste.c (ou teste.cpp). No terminal não aparece nenhum erro de compilação, mas também não aparece o arquivo .o. Se eu utilizar uma IDE o arquivo .o até aparece, mas quando tento executá-lo aparece a mensagem "bash: ./teste.o: Permissão negada". Alguém pode me dizer o que está acontecendo??
« Última modificação: 10 de Fevereiro de 2009, 15:59 por marco_smachado »

Darcamo

  • Visitante
Re: Não aparece nada quando compilo em c/c++
« Resposta #1 Online: 09 de Fevereiro de 2009, 22:16 »
Você não deve executar o arquivo ".o".
Ao invés disso você deve executar o arquivo "meu" que deve ter sido criado.

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: [Resolvido]Não aparece nada quando compilo em c/c++
« Resposta #2 Online: 10 de Fevereiro de 2009, 17:26 »
Marco, o Darcamo está absolutamente correto sobre a compilação... Veja que você não usou a chave -c, dai o gcc vai gerar o executável final, já linkado... Se quiser gerar os .o's individuais terá que usar -c:

Código: [Selecionar]
gcc -c -o test.o test.c
Mas, os arquivos .o não são executáveis porque não estão linkados com as biblitecas necessárias. Depois de compilar os .c para objetos (.o's), deve linká-los:

Código: [Selecionar]
gcc -o test test.o
É claro que esse passo intermediário (gerar os .o's) só é útil se você tiver vários módulos .c para compilar... Na linha de comando acima você poderá ter que indicar ao compilador alguma biblioteca em particular para ser linkada (libm.a, por exemplo - neste caso a chave -lm deve ser usada - onde 'm' é o nome da lib. Ou seja libm.a).

[]s
Fred