Errore compilazione

Configurazione e uso di IDE, editor, compilatori, in fase di programmazione.
Legocar
Prode Principiante
Messaggi: 7
Iscrizione: lunedì 12 ottobre 2015, 20:06
Desktop: Ubuntu
Distribuzione: Ubuntu 16.04.1 LTS x86_64
Sesso: Maschile

Errore compilazione

Messaggio da Legocar » mercoledì 19 dicembre 2018, 19:11

Buonasera!

Ho cominciato da poco a programmare in C++
Sto cercando di compilare un programma scritto in C++ utiizzando delle classi di root (ho utilizzato il comando #include <file.h>).
Non capisco come mai, nonostante quei file siano salvati su computer (ho verificato con il comando locate), al momento della compilazione mi compare questo errore su terminale
prism.cpp:3:18: fatal error: TH1D.h: File o directory non esistente compilation terminated.
Per cui mi sorge spontanea la domanda: quando, nel momento della compilazione, includo file esterni da C++ dove va a cercarli il compilatore? Devo specificare il percorso quando eseguo il comando? Se si, in che modo?

Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1856
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 18.04 Bionic Beaver
Sesso: Maschile
Località: Roma, Italia

Re: Errore compilazione

Messaggio da DoctorStrange » giovedì 20 dicembre 2018, 11:03

Tutti i file che l'utente vuole includere nel suo sorgente vengono cercati nella directory locale dove si trova il sorgente stesso.

Se vuoi accludere librerie, headers o files esterni, hai vari metodi. Il primo, che è anche il più grossolano è di specificare, all'interno dello stesso sorgente il percorso assoluto della libreria che ti interessa. Questo metodo però diventa locale alla tua distribuzione ed a dove tu stesso hai deciso di mettere le librerie esterne.

Un altro metodo, già migliore consiste nello specificare nella stringa di compilazione di gcc, dove si trovano tutte le librerie interessate, e di trattarle, all'interno della sorgente come se fossero locali.

Il metodo secondo me migliore di tutti però, consiste nel creare quello che si chiama "make file", ovvero un file linker esterno, all'interno del quale potrai specificare il percorso di tutte le librerie, tutte le opzioni di compilazioni, se vuoi potrai anche creare una procedura di "cleanup" automatica che rimuove file temporanei di appoggio creati dal compilatore senza annoiarti, e poi richiamare la procedura di compilazione non con "gcc" o "g++", in basa a quello che usi, ma dando il comando "make" che si occupa di chiamare prima il compilatore, e di passargli in automatico il linker.

Saluti.

Legocar
Prode Principiante
Messaggi: 7
Iscrizione: lunedì 12 ottobre 2015, 20:06
Desktop: Ubuntu
Distribuzione: Ubuntu 16.04.1 LTS x86_64
Sesso: Maschile

Re: Errore compilazione

Messaggio da Legocar » giovedì 20 dicembre 2018, 11:10

Grazie mille, sei stato chiarissimo.

Saluti

Avatar utente
tokijin
Moderatore Globale
Moderatore Globale
Messaggi: 4312
Iscrizione: mercoledì 3 giugno 2009, 23:10
Desktop: Plasma 5.19.0
Distribuzione: KDE Neon User Edition 5.19 x86_64
Località: Abruzzo

Re: Errore compilazione

Messaggio da tokijin » giovedì 20 dicembre 2018, 13:49

@Legocar
Modifica per favore il titolo del primo messaggio menntendo uno meno generico che spieghi più in dettaglio la situazione.

Ciao :ciao:
Sei abbruzzese se dopo che ti sei strafogato un chilogrammo di pasta, hai il coraggio di dire alla cuoca "cacc ch'è cott" - Se entra un piccione in casa..chiudi le finestre!
Ubuntu User #28657 - Il mio vecchio hardware - Tag Codice

Scrivi risposta

Ritorna a “Strumenti per la programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 1 ospite