Domanda

Sto lavorando a un gioco usando Visual C ++. Ho alcuni componenti in progetti separati e ho impostato le dipendenze del progetto. Come posso includere un file header in un altro progetto? Non ho idea di come usare le lezioni di un progetto in un altro.

È stato utile?

Soluzione

Impostazioni per il compilatore

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:

  1. Fai clic con il pulsante destro del mouse sul progetto e seleziona Proprietà.
  2. Seleziona Proprietà di configurazione- > C / C ++ - > Generale.
  3. Imposta il percorso in Directory di inclusione aggiuntive.

Come includere

Per includere il file di intestazione , basta scrivere quanto segue nel codice:

#include "filename.h"

Nota che non è necessario specificare qui il percorso, perché includi già la directory nelle Directory di inclusione aggiuntive, quindi Visual Studio saprà dove cercarlo.

Se non si desidera aggiungere ogni posizione del file di intestazione nelle impostazioni del progetto, è possibile includere solo 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

Impostazione per linker

Se si utilizzano librerie statiche (ad es. file .lib), sarà inoltre 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):

  1. Fai clic con il pulsante destro del mouse sul progetto e seleziona Proprietà.
  2. Seleziona Proprietà di configurazione- > Linker- > Input
  3. Immettere la libreria in Dipendenze aggiuntive.

Altri suggerimenti

#include non ha nulla a che fare con i progetti: dice semplicemente al preprocessore " metti qui il contenuto del file header " ;. Se gli dai un percorso che punta alla posizione corretta (può essere un percorso relativo, come ../your_file.h), verrà incluso correttamente.

Dovrai, tuttavia, conoscere le librerie (librerie statiche / dinamiche) al fine di collegare correttamente tali progetti, ma questa è un'altra domanda.

Devi impostare il percorso delle intestazioni nelle proprietà del progetto in modo che il compilatore guardi lì quando prova a trovare i file di intestazione. Non riesco a ricordare la posizione esatta, ma guarda le proprietà del Progetto e dovresti vederlo.

Cerca di evitare riferimenti completi al percorso nella direttiva #include, siano essi assoluti o relativi. Invece, aggiungi la posizione della cartella include dell'altro progetto nelle impostazioni del progetto. Utilizzare solo le sottocartelle nei riferimenti di percorso quando necessario. In questo modo, è più facile spostare le cose senza dover aggiornare il codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top