PDA

View Full Version : [C]: compilatore gcc


robs05
16-09-2008, 11:13
Salve ho appena installato ubuntu.

ho provato a compilare un codice semplicissimo

prova.c

#include <stdio.h>

int main()
{
printf("Ciao")
return 0;
}

compilo

gcc prova.c -o prova

e mi da warning: incompatible implicit declaration of built-in function 'printf'

da quanto ho potuto capire mancano la librerie e lo stesso è anche per i file cpp

prima avevo installato fedora ed ho sempre compilato senza problemi, ho dato un esame di Sistemi Operativi.

come posso aggiornare le librerie?
il problema è che su fedora erano sempre già incluse quindi non mi sono mai trovato di fronte a quasto problema.

grazie

variabilepippo
16-09-2008, 11:42
Da un qualsiasi terminale digita il comando:

sudo apt-get install build-essential

Torav
16-09-2008, 11:42
non so per le nuove versioni di ubuntu, ma prima bisognava dare un
sudo apt-get install build-essentials
per far funzionare il tutto..prova e vedi se migliora!

Agat
16-09-2008, 11:43
Salve ho appena installato ubuntu.

ho provato a compilare un codice semplicissimo

prova.c

#include <stdio.h>

int main()
{
printf("Ciao")
return 0;
}

compilo

gcc prova.c -o prova

e mi da warning: incompatible implicit declaration of built-in function 'printf'

da quanto ho potuto capire mancano la librerie e lo stesso è anche per i file cpp

prima avevo installato fedora ed ho sempre compilato senza problemi, ho dato un esame di Sistemi Operativi.

come posso aggiornare le librerie?
il problema è che su fedora erano sempre già incluse quindi non mi sono mai trovato di fronte a quasto problema.

grazie

:D Prima di aggiornare le librerie, non e' meglio che provi ad usare correttamente la printf

printf("%s", "Ciao");

banryu79
16-09-2008, 11:44
Se il codice che hai compilato è esattamente lo stesso che hai postato hai notato che manca il carattere di fine istruzione ";" dopo la chiamata a printf(...)?

@EDIT:
minchia... 4 post quasi istantanei!

variabilepippo
16-09-2008, 12:01
Prima di aggiornare le librerie, non e' meglio che provi ad usare correttamente la printf

printf("%s", "Ciao");


Perché printf("Ciao") è scorretto, visto che non sono richieste particolari formattazioni? Avrei capito il suggerimento di puts("Ciao") per motivi legati alle prestazioni, anche se i compilatori di solito sostituiscono automaticamente printf("Ciao\n") con puts("Ciao").

Agat
16-09-2008, 12:24
Perché printf("Ciao") è scorretto, visto che non sono richieste particolari formattazioni? Avrei capito il suggerimento di puts("Ciao") per motivi legati alle prestazioni, anche se i compilatori di solito sostituiscono automaticamente printf("Ciao\n") con puts("Ciao").

Gli ho semplicemente risposto che per me l'errore deriva proprio dalla mancato uso della stringa di formato, non dalle librerie :D: per il resto certo che hai ragione, anch'io avrei usato subito la puts e via cosi' ;)

xciaoatuttix
16-09-2008, 12:28
Agat il printf è corretto a parte il punto e virgola finale mancante

Agat
16-09-2008, 12:47
Agat il printf è corretto a parte il punto e virgola finale mancante

:O Ok mi autoquoto

certo che hai ragione

robs05
17-09-2008, 08:00
il codice era corretto, ho installato il pacchetto build-essential e tutto è andato ok.
grazie