Autor Tópico: Compilar C em modo texto  (Lida 3262 vezes)

Offline felipevsw

  • Usuário Ubuntu
  • *
  • Mensagens: 24
    • Ver perfil
Compilar C em modo texto
« Online: 22 de Agosto de 2010, 10:59 »
Buenas

Estou iniciando em programação em C e gostaria de fazer com o vim e compilar em moto texto.

Crio um programa básico no vim (hello world), salvo como hello.c

Ao invés de digitar sempre: gcc hello.c -o hello, eu já vi que pode ser feito simplesmente com: make hello.c que ele já faz tudo automático.
Consegui fazer deste jeito em outra distro, mas agora instalei o Ubuntu e não consigo fazer assim. Aparece a seguinte mensagem:

felipe@ubuntu:~$ make programa.c
make: Nothing to be done for `programa.c'.

Tem como fazer assim né, ou estou enganado?


Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #1 Online: 22 de Agosto de 2010, 12:10 »
Você tem instalado o build-essential?
Código: [Selecionar]
sudo aptitude install build-essential
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline felipevsw

  • Usuário Ubuntu
  • *
  • Mensagens: 24
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #2 Online: 22 de Agosto de 2010, 14:16 »
Eu instalei o Ubuntu 10.04.1, o build-essential já não vem instalado por default??

Se não vem, então não está instalado, porque eu não o instalei. Não estou no meu pc agora, mais tarde eu vejo.

Obrigado

Offline felipevsw

  • Usuário Ubuntu
  • *
  • Mensagens: 24
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #3 Online: 22 de Agosto de 2010, 14:24 »
O build-essential realmente não estava instalado na minha máquina.

Mas mesmo após tê-lo instalado continuou dando o mesmo problema com o make:

felipe@ubuntu:~$ make programa.c
make: Nothing to be done for `programa.c'.

Offline zeroday

  • Usuário Ubuntu
  • *
  • Mensagens: 1.083
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #4 Online: 23 de Agosto de 2010, 06:40 »
Felipe tire . .c , de somente um make programa ...dara certo =D.
Espero ter ajudado
"Lutar sempre , vencer na medida do possível , desistir jamais."

Darcamo

  • Visitante
Re: Compilar C em modo texto
« Resposta #5 Online: 23 de Agosto de 2010, 13:48 »
Para entender como funciona (e como criar) um Makefile veja o tópico
http://ubuntuforum-br.org/index.php/topic,21155.0.html

Offline felipevsw

  • Usuário Ubuntu
  • *
  • Mensagens: 24
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #6 Online: 24 de Agosto de 2010, 15:23 »
Não funcionou.

Código: [Selecionar]
felipe@ubuntu:~$ make programa
make: Nothing to be done for `programa'.

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #7 Online: 24 de Agosto de 2010, 19:51 »
Faz do jeito hardcore mesmo:
cria uma pasta bin no seu home.
Código: [Selecionar]
mkdir /home/`echo $USER`/binEntra na pasta e cria um arquivo chamado Make
Código: [Selecionar]
touch /home/`echo $USER`/bin/MakeDigita:
Código: [Selecionar]
echo "gcc -o $1 $1.c" > /home/`echo $USER`/bin/MakeReloga no sistema.
Quando você quiser compilar, digita:
Código: [Selecionar]
Make fileNão precisa colocar o .c
======================================
Agora, falando sério, não tenho a menor idéia do que seja. Se quiser, pode usar esse método que funciona..
Devo ter errado alguma coisa na hora da compilação, mas ajeita que dá certo...
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #8 Online: 24 de Agosto de 2010, 19:53 »
Não funcionou.

Código: [Selecionar]
felipe@ubuntu:~$ make programa
make: Nothing to be done for `programa'.
Pode ser uma observação idiota, mas, você tentou:
Código: [Selecionar]
make programa.c
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline felipevsw

  • Usuário Ubuntu
  • *
  • Mensagens: 24
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #9 Online: 25 de Agosto de 2010, 00:28 »
Não funcionou.

Código: [Selecionar]
felipe@ubuntu:~$ make programa
make: Nothing to be done for `programa'.
Pode ser uma observação idiota, mas, você tentou:
Código: [Selecionar]
make programa.c


Eu sempre tentava assim, até que um usuário acima disse para tirar o .c...
Valeu a ajuda. Vou tentar fazer como tu disse e ver se dá certo. Posto os resultados aqui.
Abraço

Offline felipevsw

  • Usuário Ubuntu
  • *
  • Mensagens: 24
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #10 Online: 25 de Agosto de 2010, 15:30 »
Muito obrigado pela ajuda che!

Do jeito que tu falaste funcionou. O que estranho é eu ter conseguido direto em outras distros, nunca precisei fazer este procedimento que tu disseste.

Ogrigado novamente.

Abraço

Offline zeroday

  • Usuário Ubuntu
  • *
  • Mensagens: 1.083
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #11 Online: 25 de Agosto de 2010, 15:46 »
O estranho eh que compilo perfeitamente tirando o .c ... sei la pq ;D
"Lutar sempre , vencer na medida do possível , desistir jamais."

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Compilar C em modo texto
« Resposta #12 Online: 25 de Agosto de 2010, 15:47 »
Muito obrigado pela ajuda che!

Do jeito que tu falaste funcionou. O que estranho é eu ter conseguido direto em outras distros, nunca precisei fazer este procedimento que tu disseste.

Ogrigado novamente.

Abraço
De nada!
Agora, lembre-se que isso é um workaround! Ainda irei descobrir porque não está funcionando o "make programa.c"
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Darcamo

  • Visitante
Re: Compilar C em modo texto
« Resposta #13 Online: 27 de Agosto de 2010, 12:41 »
O problema é que "make programa.c" normalmente não é o que você quer. Isso seria o que você quer se fosse para criar um arquivo chamado "programa.c".

Um Makefile é composto basicamente de "targets". Cada target pode ter dependências e os comandos do target devem criar (normalmente) um arquivo com o nome do target. Quando você executa "make targetname" ele vai executar os comandos para o target "targetname" que devem criar um arquivo com o mesmo nome. Imagino que você não queira criar um arquivo chamado programa.c, mas sim compilá-lo para gerar o executável. Logo, "make programa.c" não é o que você quer.

A maneira mais simples seria colocar no Makefile o seguinte conteúdo:
Código: [Selecionar]
programa: programa.c
<TAB> g++ -o programa programa.c

Note na primeira linha que o nome do target é "programa" e ele depende do arquivo "programa.c". O único comando executado para esse target é o g++ e a opção "-o nome_do_executável" é passada para o g++ para que o nome do arquivo executável seja o mesmo do nome do target.
Com isso, ao executar "make programa" o seu programa será compilado e o executável com nome "programa" será criado.

O tutorial que indiquei antes é um pouco longo, mas acredito que responda essas dúvidas e você vai entender o funcionamento do programa make.