Ho un progetto (una libreria) che è suddiviso in poche directory con il codice in esse. Mi piacerebbe avere g + + cercare i file di intestazione nella directory radice del progetto, così posso evitare diversi percorsi di inclusione per gli stessi file di intestazione su più file sorgente.Come eseguire la ricerca in g ++ per i file di intestazione in una directory specifica?
Principalmente, la directory root/
ha sotto-directory A/
, B/
e C/
, che hanno tutti .hpp
e .cpp
file all'interno. Se un file sorgente in A voleva includere file.hpp
, che era in B, dovrebbe farlo in questo modo: #include "../B/file.hpp"
. Lo stesso vale per un altro file sorgente che si trovava in C. Ma, se A stesso avesse sottodirectory con file che avevano bisogno di file.hpp
, allora sarebbe incoerente e causerebbe errori se decidessi di spostare i file (perché il percorso di inclusione sarebbe "../../B/file.hpp"
) .
Inoltre, questo dovrebbe funzionare anche da altri progetti, che risiedono al di fuori di root/
. So già che esiste un'opzione per copiare manualmente tutti i miei file di intestazione in una directory di ricerca predefinita, ma mi piacerebbe farlo nel modo che ho descritto.
Modifica: tutti i programmi che utilizzano la libreria devono compilare solo con g++ prog.cpp lib.a -o prog
. Ciò significa che permanentemente impostare il percorso di inclusione per g ++!
Ehi, ho affermato la domanda senza un dettaglio importante, vedi la modifica, grazie! – corazza
@Bane, che cambia tutto :-). Ho modificato la mia risposta per includere più opzioni che possono essere utilizzate. – Vikas
Sembra essere quello che sto cercando. Esattamente come posso modificarli? (Con un'istruzione CLI, ovvero, che devo aggiungere alla regola di installazione del makefile della mia libreria.) – corazza