2013-02-01 15 views
8

Ho appena scaricato OpenNI 2 SDK (www.openni.org) e sto cercando di impostare un progetto in Visual Studio 2012. Quello che ho fatto:OpenNI 2 e Visual Studio 2012

  1. Creare un nuovo ++ Win32 console progetto di applicazione C
  2. Vai a Progetto> Proprietà myProject e, in Proprietà di configurazione> Directory di VC++ ...
  3. Aggiunto C: \ Program Files (x86) \ OpenNI2 \ Redist \; a Directories eseguibili
  4. Aggiunto C: \ Programmi (x86) \ OpenNI2 \ Include \; a Includi directory
  5. Aggiunto C: \ Programmi (x86) \ OpenNI2 \ Redist \; a Directory di riferimento
  6. Aggiunto C: \ Programmi (x86) \ OpenNI2 \ Lib \; a directory di libreria

Ma quando provo ad installare ho il seguente errore simbolo non risolto (dove ConsoleApplication1 è il nome del mio progetto)

Error 1 error LNK2019: unresolved external symbol 
__imp__oniInitialize referenced in function 
"public: static enum openni::Status __cdecl openni::OpenNI::initialize(void)" 
([email protected]@[email protected]@[email protected]@XZ) 
c:\Users\MyPC\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 
ConsoleApplication1 

So che questo errore durante il collegamento sta dicendo che il linker non riesco a trovare alcune librerie ma ho pensato che quello che ho appena fatto fosse abbastanza.

Ho anche provato la versione a 64 bit, creando un progetto a 64 bit, ma ho gli stessi errori.

Non sono riuscito a trovare documentazione soddisfacente su questo argomento.

Sono sicuro che mi manca qualcosa di stupido. Puoi dare qualche consiglio su questo?

risposta

6

Inoltre si dovrebbe fare i seguenti passi: sezione

0-In C/C++, sotto il nodo "Generale", selezionare

"Additional Include Directories" 

e aggiungere

"$(OPENNI2_INCLUDE)" (if you use the 32-bit version) or 
"$(OPENNI2_INCLUDE64)" (if you use the 64-bit version). 

Queste sono le variabili di ambiente tha t puntare alla posizione della directory OpenNI Include. (Le impostazioni predefinite sono:

C:\Program Files\OpenNI2\Include or 
C:\Program Files (x86)\OpenNI2\Include) 

1-Nella sezione Linker, sotto il nodo "Generale", selezionare

"Additional Library Directories" 

e aggiungere

"$(OPENNI2_LIB)" (if you use the 32-bit version) or 
"$(OPENNI2_LIB64)" (if you use the 64-bit version). 

Queste sono le variabili di ambiente che puntano a la posizione della directory OpenNI Lib.(Le impostazioni predefinite sono:

C:\Program Files\OpenNI2\Lib or 
C:\Program Files (x86)\OpenNI2\Lib) 

2-Nella sezione Linker, nel nodo di ingresso, selezionare

"Additional Dependencies" 

e aggiungere

OpenNI2.lib or OpenNI2.lib 

3-Assicurarsi che si aggiunge il inclusione aggiuntive e le directory della libreria per entrambe le versioni e di debug

4-Copiare tutti i file dalla directory di redistore di OpenNI (consultare la variabile di ambiente "$ (OPENNI2_REDIST)" o "$ (OPENNI2_REDIST64)") nella propria directory di lavoro. (Le impostazioni predefinite sono

C:\Program Files\OpenNI2\Redist or 
C:\Program Files (x86)\OpenNI2\Redist). 

essere consapevoli che quando si esegue dalla riga di comando, la directory di lavoro è la directory in cui l'eseguibile può essere trovato, e in cui si esegue da Visual Studio directory predefinita è dove il file di progetto (.vcproj, .vcxproj)

+0

Ha funzionato subito. Grazie mille. – SteakOverflow

+0

Ciao NKN, prima di postare qualsiasi nuova domanda, hai qualche idea sul perché ASUS Xtion funzioni solo mentre la videocamera Microsoft Kinect non viene riconosciuta? Grazie. – SteakOverflow

+0

Ho avuto qualche esperimento con ASUS Xtion, mi dispiace. – NKN

1

è inoltre necessario puntare al file di libreria attuale: openni2.lib

+0

ma questo è all'interno della cartella OpenNI2/Lib – SteakOverflow

0

Se si aggiungono tutte le opzioni (Includi, Lib, ...) alle impostazioni del progetto e si ottiene nuovamente questo errore, forse la piattaforma di progetto è Win32 e si desidera utilizzare OpenNI x64

In questo caso, è necessario modificare la piattaforma in x64 (Proprietà del progetto nella parte superiore della pagina)

  • Se non si dispone di un'opzione x64, fare una nuova;)