Visual Studio 2010 - file in cartelle senza ../../Include.h
-
27-09-2019 - |
Domanda
La mia struttura fisica di file per un progetto che ho è qualcosa di simile:
- cartella di origine
- Motore
- Folder1
- Cartella2
ecc.
Ho alcuni file in 'Source', un po 'in 'Engine', un po' in 'Motore / Cartella1', ecc.
Il mio progetto, ho finiti tutti Configurazioni-> Fonte directory e incluso Fonte, Motore, Motore / Cartella2, ecc, tuttavia, ho ancora gli errori che non è possibile trovare i file quando si tenta di includere "foo.h" o qualunque sia da una cartella diversa. C'è un modo per farlo in modo da non avere ../Folder1/ di fronte a tutto ciò?
Soluzione
C'è un modo per farlo in modo da non avere ../Folder1/ di fronte a tutto ciò?
Sì, c'è. La risposta dipende da diversi fattori e sono sicuro che mi mancherai alcuni.
Controlla quanto segue:
- Nel controllare le impostazioni del compilatore "Ulteriori Include" sotto "C / C ++"
- Verificare inoltre in "VC ++" il valore per "includere le directory"
- Controllare l'impostazione "Ignora standard percorsi di inclusione" in "C / C ++ / preprocessore"
- Controlla la tua precompilato di intestazione impostazioni
- Controlla la tua "#define" / "#undef" nei file di origine e le impostazioni del compilatore
- Controllare le finestre delle proprietà del progetto può utilizzare o che ereditano
Se si utilizza "foo.h" (piuttosto che
Quando un file di usi "../foo.h" il suo un percorso relativo alla posizione del file che include il file. Ci possono essere eccezioni difficili.
Ci sono molte altre cose che possono influenzare come il preprocessore trova il suo percorsi di inclusione. Se non siete sicuri che il preprocessore sta facendo con un particolare file è possibile effettuare l'output del preprocessore visibile interruttore su "Preprocessa in un file" nelle impostazioni del preprocessore. Gli spettacoli di file che il codice sorgente di un file dopo il preprocessore è finita e prima che il compilatore inizia il suo lavoro.
Il tutto diventa molto più facile con più esperienza e, in particolare, una chiara strategia per la struttura delle cartelle / progetto e come includere i file. Per esempio assicurarsi di avere "#pragma una volta" come prima riga non di commento in ogni file include.
Spero che questo ti dà alcune idee per i prossimi passi. Buona fortuna!
Altri suggerimenti
Ritengo che questa sia una buona pratica:
- Quando il percorso del file incluso non richiede l'uso di "..", utilizzare i percorsi relativi
- Quando si richiede l'uso di "..", utilizzare percorsi assoluti (cioè, relativo alla cartella principale del file di origine.
Per percorsi assoluti al lavoro, aggiungere la cartella di origine principale per l'inclusione directory lista (rispetto alla posizione del file del progetto).