Newsgroup: it.comp.lang.c
Titolo: [newbie] primi passi sotto linux

Ciao a tutti,
sto iniziando a sviluppare sotto Linux (per la precisione Ubuntu 8.04). 
Ho creato uno stupidissimo file .c e quando lancio:
 >>> gcc mifile.c -o miofile.o
ottengo un messaggio di errore:
miofile.c:1:19: error: stdio.h: No such file or directory
Ho controllato e mi pare che la libreria standard (libc, mi sembra) sia 
correttamente installata. Potreste darmiq ualche indicazione per 
risolvvere il problema?
Grazie mille,
Giulio
-- 
OnAir:
http://www.giuliopetrucci.it
http://www.fujikomonamour.com

 risolvere il problema?
Più che la libreria standard (/lib/libc-xxxx.so) che viene installata 
perché il sistema possa funzionare, devi verificare che sia installato 
il pacchetto con gli headers files.  Generalmente popola la directory 
/usr/include.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 risolvvere il problema?
Non sono installate le intestazioni.
Devi cercare e installare il meta-pacchetto "build-essential" su Synaptic 
oppure dare da terminale:
# sudo apt-get install build-essential
-- 
Lorenzo Breda

Potreste darmiq ualche indicazione per risolvvere il problema?
Installare una distribuzione seria tipo la Slackware o la 
SuSE. La Ubuntu, dicono, è adatta ai principianti non ai 
programmatori, dovresti instalalre una distribuzione che 
per lo meno installi i compilatori e i pacchetti di 
sviluppo (quelli nominati development o devel). Inoltre 
ti servono debugger, editor esadecimali, assemblatori,
e tanti altri strumenti di sviluppo che la maggioranza 
delle distribuzioni generiche non installa; figurati se li
installa una distribuzione cosiddetta per principianti,
Ed ovviamente un consiglio che ti è già stato dato:
assicurati di installare le versioni dei pacchetti di 
sviluppo che contengono gli header.

 /usr/include.
Grazie del consiglio!
Ciao,


 Devi cercare e installare il meta-pacchetto "build-essential" 
Grazie. Risolto alla grande. ;-)
Ciao,


 delle distribuzioni generiche non installa; 
dai, non essere così "tirato", fai qualche nome! ;-)
Grazie per le dritte,
Giulio
--
OnAir:
http://www.giuliopetrucci.it
http://www.fujikomonmaour.com

 Ubuntu, dicono, è adatta ai principianti non ai programmatori
La SuSE non è né più né meno seria di Ubuntu. In ogni caso, nella massima 
parte delle distro (compresa Debian, su cui sviluppo, e non mi si dica 
che non è seria) le intestazioni per compilare in C non ci sono di 
default.
Ubuntu comprende debugger, editor esadecimali, assemblatori e 
quant'altro, come ogni distribuzione non fatta appositamente per non 
sviluppare. E, sinceramente, un editor esadecimale mi pare il minimo, 
accidenti.
Ora, posso capire se uno deve programmare in qualche linguaggio mooolto 
particolare, ma per il C va bene qualunque distro (altrimenti manco il 
kernel, compili).
Io consiglio e consiglierò sempre Debian, ma sono idee mie. Molti 
consiglierebbero Slack, o altre ancora. Ma dire che Ubuntu è inadatta a 
sviluppare in C è scorretto.
-- 
Lorenzo Breda

 installa una distribuzione cosiddetta per principianti,
Non sense. Qualsiasi distribuzione è adatta a qualsiasi scopo. Basta sapere
cosa installare e come usarlo.
La differenza è che con Ubuntu te ne esci con apt-get install build-essential,
mentre con Slackware........ :)
-- 
|_|0|_| - Salvatore Iovene
|_|_|0| - Website:  
http://www.iovene.com/
|0|0|0| - Key:      
http://www.iovene.com/pubkey.asc
------- - Webcomic: 
http://geekhero.iovene.com/

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Uso Ubuntu da circa un anno, programmo sistemi embedded e
applicazioni Gnome e KDE, come linguggi di programmazione uso
ADA, Assembler, C/C++.
Non lo trovo per principianti anzi, uso anche Debian, SuSe, Slackware.
Come installazione di default Ubuntu non installa compilatori e editor
specifici,
ma questo lo trovo giusto, a me piace compilare il Kernel e installare
quello che mi serve,
e penso che chi programma professionalmente la deve gestire una
qualsiasi distribuzione.
Tu dici "dicono", ma se aspetti che una qualsiasi distribuzione ti
installi le varie applicazioni
e librerie per programmare sei fuori strada.
Ciao
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - 
http://enigmail.mozdev.org
iD8DBQFIqTWZMxbj9RlG484RAmXzAJ9LF+kMalt6fOGlGekDoC1KOG2I7ACfR1TL
IIGs5ZrdZPNbEhPty7TKNsA=
=1DB0
-----END PGP SIGNATURE-----

 mentre con Slackware........ :)
te ne esci con qualche 'installpkg pacchetto.tgz'.


Penso che dopo aver usato Linux dal 1992, ed essere passato attraverso
varie distribuzioni, dico "Slackware per sempre!"
Quelli di voi che dicono che non ci sono differenze sbagliano.
Quando, tanti anni fa, SLS e poi Slackware erano le piu' popolari, non
c'era molta differenza.
Anche la prima distribuzione con il Live CD (La Yyggdrasil, chi se la
ricorda?, io ho ancora il libretto e il CD a casa) aveva i pacchetti
come la slackware, senza che la ditta proprietaria della distribuzione
ci si mettesse di mezzo.
Da quando e' arrivata RedHat, specialmente da quando era in
competizione con SuSE nel 1999, le cose sono peggiorate.
Le varie case cambiano i loro pacchetti, la locazione dei file, le
loro varie cose.
Pure la LSB garantisce certe "eccezzioni" proprio perche' le varie
distribuzioni fanno quasi quello che vogliono.
Con questo non voglio dire che Ubuntu o RedHat non siano per
sviluppatori, ma quando sviluppi per "vari" progetti open source, ti
accorgi delle differenze.
Finche' tu sviluppi solo il tuo pacchetto e garantisci compatibilita'
con 'una' distribuzione sei ok.
Ma Slackware dovrebbe essere il benchmark per tutti gli sviluppatori.

 e librerie per programmare sei fuori strada.
Questo è giusto. Una distribuzione non deve installare tutto
ma deve fare una scelta. E questo è lo stesso concetto di 
distribuzione. 
Poi ci sono distribuzioni che fanno scelte diverse che le 
rendono adatte (od inadatte) per scopi particolari.
Ma spiegami perchè se installi un compilatore C e non ti 
vengono installate le librerie e gli header di cui ha 
bisogno uno non dovrebbe arrabbiarsi.

 sviluppare in C è scorretto.
Ed infatti io non lo ho detto. 
Il mio pensiero è che la Ubuntu non è adatta a chi vuole 
imparare, sia esso un programmatore od un semplice utente.

 Questo pone già problemi ad installare e compilare una tarball.
Assolutamente no. Non sono installate per default, ma credo che un
sudo apt-get instal build-essential
lo possa fare chiunque. Ah, e su Debian è lo stesso. E, oltretutto, 
installare un tarball senza un compilatore non è abbastanza banale da 
permettere che una distro non contenga gcc.
-- 
Lorenzo Breda

 Debian.
Il fatto e' che Debian rimane troppo indietro rispetto all'hardware di
ultima generazione e c'è una lotta fratricida tra gli sviluppatori.
Slackware e' ottima per stabilita' e personalizzazione totale, ma
personalizzare pure il mouse non riconosciuto per chi inizia e'
troppo, poi solo 32bit....


Già, forse tu cambi PC 2 volte al mese ;-)  ma per chi come me lo 
cambia ogni 10 anni non ci sono problemi di questo genere.


 cambia ogni 10 anni non ci sono problemi di questo genere.
Oddio ogni 10 anni mi sembra esagerato :)
Io ammetto di rinnovarmi frequentemente, pero' se oggi uno si compra
un PC "normale" qualche problemino di configurazione lo trova e per
chi inizia risulta molto frustrante.
Secondo me serve un buon manuale ed una distro che riconosca subito
hdd, mouse, tastiera e scheda video al volo.
Se ci si appassiona poi Slackware e' la migliore (fosse 64bit....)


Sono d'accordo con te, ma di recente Slackware e' migliorata
moltissimo anche sul piano del primo utilizzo.
In genere Slackware si e' sempre basata sul kernel e sui tool
ufficiali per riconoscere l'hardware, e questa caratteristica adesso
si e' sviluppata moltissimo, per cui anche Slackware riesce a
riconoscere certe periferiche 'out of the box' senza dover ricorrere a
vere e proprie 'magie informatiche', che quando funzionano, bene, ma
quando non funzionano, non lo sai fino a quando si rompe qualcosa.
Per il 64 bit e' sufficiente che alcuni amministratori di sistema
appassionati si mettono insieme e fanno il progetto Slack64 e portare
tutto a 64bit.
Io ci sto, anche se non sono un amministratore di sistema, in quanto
software a 64bit fa parte del mio lavoro.
:-)
Apriamo un newsgroup apposta? Magari qualcuno gia' c'e' che lo sta
facendo.


Ecco trovate:
http://www.slamd64.com
http://www.bluewhite64.com/bluewhite64-linux-news.html