Risposte:
Nel progetto in cui si desidera #includere il file di intestazione da un altro progetto, sarà necessario aggiungere il percorso del file di intestazione nella sezione Directory di inclusione aggiuntive nella configurazione del progetto.
Per accedere alla configurazione del progetto:
Per includere il file di intestazione , scrivi semplicemente quanto segue nel tuo codice:
#include "filename.h"
Tieni presente che non è necessario specificare il percorso qui, perché includi già la directory nelle directory di inclusione aggiuntive, quindi Visual Studio saprà dove cercarla.
Se non desideri aggiungere ogni posizione del file di intestazione nelle impostazioni del progetto, puoi semplicemente includere una directory fino a un punto, quindi #include rispetto a quel punto:
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
Se si utilizzano librerie statiche (ad es. File .lib), sarà anche necessario aggiungere la libreria all'input del linker, in modo che al momento del collegamento i simboli possano essere collegati (altrimenti si otterrà un simbolo non risolto):
#include "proj2\include.h"
. Avere più progetti per soluzione sembra molto diretto verso i linguaggi NET, in quanto vengono utilizzati in modo molto diverso. Eppure per trovare un ottimo modo per superare questo problema per i progetti C ++.
#include
non ha nulla a che fare con i progetti - dice semplicemente al preprocessore "metti qui il contenuto del file di intestazione". Se gli dai un percorso che punta alla posizione corretta (può essere un percorso relativo, come ../tuo_file.h) verrà incluso correttamente.
Tuttavia, dovrai conoscere le librerie (librerie statiche / dinamiche) per fare in modo che tali progetti si colleghino correttamente, ma questa è un'altra domanda.
Poiché entrambi i progetti si trovano nella stessa soluzione, esiste un modo più semplice per includere file e linker come descritto in https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp- progetti? view = vs-2019 :
#include "../libProject/libHeader.h"
.).È necessario impostare il percorso delle intestazioni nelle proprietà del progetto in modo che il compilatore cerchi lì quando cerca di trovare i file di intestazione. Non ricordo la posizione esatta, ma guarda le proprietà del progetto e dovresti vederlo.
Cerca di evitare riferimenti di percorso completi nella direttiva #include, siano essi assoluti o relativi. Aggiungere invece la posizione della cartella di inclusione dell'altro progetto nelle impostazioni del progetto. Utilizzare solo sottocartelle nei riferimenti di percorso quando necessario. In questo modo, è più facile spostare le cose senza dover aggiornare il codice.
Espandendo la risposta di @ Benav, il mio approccio preferito è:
$(SolutionDir)
alle directory di inclusione aggiuntiveOra puoi includere intestazioni dai tuoi progetti di riferimento in questo modo:
#include "OtherProject/Header.h"
Appunti:
#include
s, ma imposta le dipendenze di compilazione corrette, che probabilmente desideri.