2016-01-31 6 views
9

VTK_DIR-NOTFOUND viene restituito quando si utilizza CMake. Sto usando la GUI di CMake e, come altri errori di percorso, posso indicare il percorso corretto. Tuttavia, per VTK non funziona. Sto indicando la directory in cui il file VTConfig.cmake e altri lo sono. Anche provato con tutte le altre dirs VTK ma senza alcun successo. Sto usando la configurazione di Visual Studio 12 2013 Win 64 per la generazione, ma ho provato anche con il 2010.CMake VTK_DIR-NOTFOUND

enter image description here

che punta al percorso manualmente,

enter image description here

+0

Sembra buono, cosa stai facendo. Solo per essere sicuri: è il 'ConfigVTK.cmake' in' lib/cmake/vtk-6.2'? Qual è la tua versione di CMake? – usr1234567

+0

CMake versione 3.4.3. e questa directory contiene i file cmake come VTKConfig.cmake ma non ConfigVTK.cmake come suggerisci ... – Jaume

+0

Mi spiace, intendevo VTKConfig.cmake. Non ho idea. Magari corri in modalità debug e controlla cosa succede. Leggi alcuni codici CMake e confronta. – usr1234567

risposta

4

La prima cosa che vorrei controllare è quello che è il comando effettivo find_package() essere invocato in cui si verifica l'errore? Forse quella chiamata è qualcosa di un po 'insolito o esplicitamente ha la parola chiave MODULE (questo impedirebbe di trovare il file VTKConfig.cmake).

Se sembra ok, controllare se qualcosa sta modificando la variabile VTK_DIR. Inserire il seguente nella parte superiore del file più in alto CMakeLists.txt:

variable_watch(VTK_DIR) 

Questo dovrebbe dirvi cosa, semmai, sta modificando in modi non vi aspettavate.

Supponendo che VTK_DIR non venga effettivamente modificato, la prossima cosa che si potrebbe provare è impostare CMAKE_PREFIX_PATH nella directory contenente il file VTKConfig.cmake (è possibile aggiungerlo nella GUI di CMake se non è già presente). Forse prova anche variable_watch(CMAKE_PREFIX_PATH) anche nel caso in cui qualcosa stia modificando che internamente anche inaspettato.

Se ancora non viene rivelato nulla, è probabile che ci sia qualcosa che non va nell'installazione di CMake o VTK. Forse provare una versione precedente di CMake e vedere se si ottiene un comportamento diverso.

+0

Come potrei perdere varable_watch ?! Uno strumento di questo livello inferiore rispetto al mio attuale approccio: il debug di printf. – usr1234567

2

Sebbene la risposta attualmente accettata sia un buon modo per eseguire il debug, sembra che si stia creando Point Cloud Library (PCL) con i file binari non ottimizzati. Nel qual caso suggerisco di assicurare il tuo system environment variables are setup correctly che automatizzerà il processo che stai attraversando e faciliterà il lavoro dei metodi find_package(). Supponendo di aver installato tutto nella stessa directory (ovvero dove ci si è già collegati a FLANN ed Eigen), è necessario aggiungere le seguenti librerie di terze parti PCL predefinite:

C: \ Programmi \ PCL 1.7.2 \ 3rdParty \ FLANN \ bin

C: \ Program Files \ PCL 1.7.2 3rdParty \ VTK \ bin \

C: \ Program Files \ PCL 1.7.2 \ 3rdParty \ Eigen

C: \ Program File \ PCL 1.7.2 \ 3rdParty \ Boost

T hen Qt, OpenNI ecc. che sono installati separatamente.

E si può anche aggiungere:

BOOST_INCLUDEDIR: C: \ Program Files \ PCL 1.7.2 \ 3rdParty \ Boost \ include \ spinta-X_XX \ spinta (Sostituire X_XX con il numero di versione)

BOOST_LIBRARYDIR: C: \ Programmi \ PCL 1.7.2 \ 3rdParty \ Boost \ lib

BOOST_ROOT: C: \ Program Files \ PCL 1.7.2 \ 3rdParty \ Boost

EIGEN_ROOT: C: \ Program Files \ PCL 1.7.2 \ 3rdParty \ Eigen