• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

te-x

Erro ao compilar

12 mensagens neste tópico

Estou a usar o Ubuntu e já tenho o GCC instalado. Estava a aprender a programar C em windows, com o Dev C++, mas agora que já tenho o Linux não quero estar a ir para o Windows sempre que quero programar...

Estou a escrever o código no Gedit, mas depois não consigo compilar. No terminal/consola faço  gcc -Wall -O2 hello.c mas depois tenho estes erros:

hello.c:1:19: error: stdio.h: Ficheiro ou directoria inexistente

hello.c:2:20: error: stdlib.h: Ficheiro ou directoria inexistente

hello.c: In function ‘main’:

hello.c:6: warning: implicit declaration of function ‘printf’

hello.c:6: warning: incompatible implicit declaration of built-in function ‘printf’

hello.c:8: warning: implicit declaration of function ‘system’

Deve ser por ainda não ter instalado as Bibliotecas mas não sei como e que as instalo. Alguém me consegue fazer um mini-tutorial ou dar-me um site que me explique isto?

Se algum destes erros for de código mal escrito fica aqui o código:

#include <stdio.h>

#include <stdlib.h>

int main()

{

printf("Hello World!");

system("PAUSE");

return 0;

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito estranho. À partida não devia dar erro nenhum sobre essas bibliotecas, será que não apagaste alguns ficheiros sem querer?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

que saiba não. De qualquer maneira eu vou ter de reinstalar o ubuntu (deixei uma partição grande de mais e o partiton magic não consegue redimensionar, deteca a partição completamente cheia). Pode ser que se resolva.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois, isso é falta de "includes", ou directoria errada, ou cena do género...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu diria que te falta incluir no comando da compilação a pasta onde estao os headers stdio.h e stdlib.h. Tenta  compilar com

gcc -Wall -I/usr/include -o hello hello.c

E verifica se na pasta /usr/include estão de facto os headers stdio.h, stdlib.h entre outros.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema é que isso nunca deveria ser necessário.... essa pasta é "standard" em todos os sistemas "unix-like", e o gcc pesquisa-as por default... O mais provável será que as bibliotecas não tenham sido instaladas, ou então removidas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando instalaste o gcc foi só o gcc? Se sim faz apt-get install build-essential que são um conjunto de pacotes que incluem essas bibliotecas.

E realmente no ubuntu não devias de ter esses problemas, por isso se não for do que disse alguma coisa deve ter acontecido aos ficheiros. É experimentares re-instalares o pacote que te disse.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol... o facto de ser Ubuntu é que me faz crer que leve a esses problemas....

Não é a distro de eleição para programação.......

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois, uma coisa que não gostei no Debian (e que deve ser igual no Ubuntu), é aquilo não instalar por default as ferramentas de desenvolvimento... é que elas não fazem só falta para quem programa (deste ponto de vista não faria sentido virem instaladas por default), mas sem elas também não podemos instalar programas a partir do código fonte.

é preciso instalar o build-essential, mas este pacote não trás as man pages, que ainda têm de ser instaladas em separado (e provavelmente ainda são necessários mais alguns pacotes).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já está a funcionar, com o comando " gcc -Wall -I/usr/include -o hello hello.c" criou-me o ficheiro hello.exe (se um executável de linux for igual ao executável de windows), mas agora não consigo correr aquele ficheiro. É preciso mais alguma coisa?

PS:Rui Carlos, o que sao as man pages? Andei a procurar mas não consegui perceber o que são.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

as man pages são ficheiros de ajuda dos sistemas unix like.

se fizeres no terminal, man scanf, por exemplo, isto mostrava-te a man page da função, com várias informações sobre o scanf. o mesmo acontece para muitas outras funções do C, system calls, comandos do sistema, ficheiros de configuração, etc.

não precisas disto para compilar um programa, mas são bastante úteis para um programador.

http://en.wikipedia.org/wiki/Manual_page_(Unix)


para executares o ficheiro, deves fazer ./hello

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora