Errore compilazione

Configurazione e uso di IDE, editor, compilatori, in fase di programmazione.

Errore compilazione

Messaggioda 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?
Legocar
Prode Principiante
 
Messaggi: 7
Iscrizione: ottobre 2015
Desktop: Ubuntu
Distribuzione: Ubuntu 16.04.1 LTS x86_64
Sesso: Maschile

Re: Errore compilazione

Messaggioda 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.
Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1712
Iscrizione: ottobre 2015
Località: Roma, Italia
Desktop: Unity
Distribuzione: Ubuntu 16.04.03 Xenial Xerus
Sesso: Maschile

Re: Errore compilazione

Messaggioda Legocar » giovedì 20 dicembre 2018, 11:10

Grazie mille, sei stato chiarissimo.

Saluti
Legocar
Prode Principiante
 
Messaggi: 7
Iscrizione: ottobre 2015
Desktop: Ubuntu
Distribuzione: Ubuntu 16.04.1 LTS x86_64
Sesso: Maschile

Re: Errore compilazione

Messaggioda 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 - Giusto per occupare un po' di spazio..
Avatar utente
tokijin
Moderatore Globale
Moderatore Globale
 
Messaggi: 4233
Iscrizione: giugno 2009
Località: Abruzzo
Desktop: Plasma 5.14.5
Distribuzione: KDE Neon User Edition 5.14 x86_64


Torna a Strumenti per la programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 2 ospiti