[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


346. Linguaggio C

346.1 *.h, *.o e *.c

Che cosa sono precisamente i file *.h e *.o in un programma C?

Supponendo di lavorare sul file "miofile", il  codice sorgente vero e
proprio viene scritto in "miofile.c".  
"miofile.h", detto file di intestazione contiene  le dichiarazioni
delle variabili e delle funzioni implementate nel file "miofile.c".

Infine il codice oggetto risultante dalla compilazione risiederà in "miofile.o".

D: Angelo Gelmi
R: Giorgio Corani

346.2 Avvio del compilatore C++

Come faccio ad avviare il compilatore C++ dalla shell di Linux?

Con:

g++ -o nomefile nomefile.cpp

-o serve a dare un nome all'eseguibile diverso dal nome predefinito, che è 'a.out'.

D: Goximaum Bahurka
R: Leonardo Lerede

346.3 Messaggio di errore: bus error

Qualcuno sa dirmi in quali condizioni si verifica un errore di tipoBus Error? Ho scritto un'applicazione C++ che ogni tanto senza spiegazioni cessa di funzionare e restituisce un "Bus Error" in zone di codice diverse.

Compila il programma con l'opzione -g ed eseguilo.
Quando si interrompe, analizza le cause con:

dbx <nomeprogr> core

e tramite l'istruzione "where" puoi vedere dove è accaduto l'errore.

Solitamente <enf>Bus Error</enf> accade per un superamento dei limiti
di memoria, un indice di un array che supera il limite, un fine-
stringa mancante ecc.

D: Klaudio
R: Alessandro Piattoli

346.4 Conio.h (da Dos a Linux)

Girovagando tra i miei passati programmi compilati col Turbo C++ ne ho trovato uno che mi potrebbe servire anche in Linux. Questo programma però include alcuni file tipo conio.h, graphics.h e dos.h che in Linux naturalmente non ci sono. Il mio problema è quello di sapere se è possibile trovare file .h omologhi anche in Linux o devo cambiare radicalmente il sorgente?

Cerca su sunsite.unc.edu un file che si chiama:

linux-conio-x.yy.tgz

che sostituisce il conio.h della Borland; ho avuto qualche problemino
ma l'ho ritoccato e funziona discretamente. 

Comunque, molto brevemente (e imprecisamente):

        conio.h -> ncurses.h
        graphics.h -> vga.h
        dos.h -> ???

Tuttavia le librerie sotto Linux hanno un modo di operare
completamente diverso e ti consiglio uno studio accurato della
documentazione. 

D: Saku
R: Francesco, Fabrizio Lippolis

---------------------------

LDR --- Copyright © 1999-2000 Gaetano Paolone --  bigpaul @ pluto.linux.it


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]