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 »

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
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2854
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Errore compilazione

Messaggio da DoctorStrange »

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 »

Grazie mille, sei stato chiarissimo.

Saluti
Avatar utente
tokijin
Moderatore Globale
Moderatore Globale
Messaggi: 4606
Iscrizione: mercoledì 3 giugno 2009, 23:10
Desktop: plasma 5.27.4
Distribuzione: Kubuntu 23.04
Località: Abruzzo

Re: Errore compilazione

Messaggio da tokijin »

@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 5 ospiti