2017-08-10 1 views
0

en utilisant ubuntu 14.04. et j'ai installé avec succès vtk8.0.0.opencv ne peut pas faire avec vtk_on

Maintenant, je veux construire opencv2.4.13.2 avec vtk sur.

Et il y a toujours des erreurs, voir ci-dessous.

In file included from /usr/local/include/vtk-8.0/vtkGenericDataArray.h:72:0, 
       from /usr/local/include/vtk-8.0/vtkAOSDataArrayTemplate.h:35, 
       from /usr/local/include/vtk-8.0/vtkIntArray.h:33, 
       from /usr/local/include/vtk-8.0/vtkCellTypes.h:42, 
       from /usr/local/include/vtk-8.0/vtkPolyData.h:64, 
       from /usr/local/include/vtk-8.0/vtkPolyDataAlgorithm.h:36, 
       from /usr/local/include/vtk-8.0/vtkAppendPolyData.h:35, 
       from /home/suyz/Install/opencv/opencv-2.4.13.2/modules/viz/src/precomp.hpp:56, 
       from /home/suyz/Install/opencv/release/modules/viz/opencv_viz_pch_dephelp.cxx:1: 
/usr/local/include/vtk-8.0/vtkGenericDataArrayLookupHelper.h:72:5: warning: identifier ‘nullptr’ is a keyword in C++11 [-Wc++0x-compat] 
    : AssociatedArray{nullptr}, SortedArray(nullptr), 
    ^
/usr/local/include/vtk-8.0/vtkGenericDataArrayLookupHelper.h: In constructor ‘vtkGenericDataArrayLookupHelper<ArrayTypeT>::vtkGenericDataArrayLookupHelper()’: 
/usr/local/include/vtk-8.0/vtkGenericDataArrayLookupHelper.h:72:7: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default] 
    : AssociatedArray{nullptr}, SortedArray(nullptr), 
    ^
/usr/local/include/vtk-8.0/vtkGenericDataArrayLookupHelper.h:72:23: error: ‘nullptr’ was not declared in this scope 
    : AssociatedArray{nullptr}, SortedArray(nullptr), 
        ^
/usr/local/include/vtk-8.0/vtkGenericDataArrayLookupHelper.h:73:5: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default] 
    FirstValue{nullptr}, SortedArraySize{0} 
    ^
/usr/local/include/vtk-8.0/vtkGenericDataArrayLookupHelper.h:73:26: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default] 
    FirstValue{nullptr}, SortedArraySize{0} 
         ^
make[2]: *** [modules/viz/CMakeFiles/opencv_viz_pch_dephelp.dir/opencv_viz_pch_dephelp.cxx.o] Error 1 
make[1]: *** [modules/viz/CMakeFiles/opencv_viz_pch_dephelp.dir/all] Error 2 
make[1]: *** Waiting for unfinished jobs.... 

quelqu'un a une idée, comment résoudre ce problème? Merci beaucoup!

Répondre

0

VTK 8.0 et plus récent nécessite un compilateur C++ 11 (nullptr est une fonctionnalité C++ 11). Avez-vous installé un VTK pré-construit? Dans ce cas, vérifiez que vous utilisez gcc 4.8 ou plus récent et faire des drapeaux que votre C++ inclure -std=c++11 (vous pouvez essayer de l'ajouter à l'entrée CMAKE_CXX_FLAGS dans CMakeCache.txt dans votre build OpenCV pour voir si l'erreur disparaît.

+0

i bâtissaient VTK Je pense que j'ai le compilateur C++ mais il ne sera pas utilisé par défaut Comment je peux l'ajouter dans CMakeCache.txt comme ceci? // Indicateurs utilisés par le compilateur lors de tous les types de construction CMAKE_CXX_FLAGS: STRING = "-std = C++ 11" – Yongzhi

+0

Je pense que peut-être cette erreur est partie, mais j'ai maintenant des problèmes avec CUDA. [29%] Construction d'un objet NVCC (Device) /usr/lib/gcc/x86_64-linux-gnu /4.8/include/stddef.h(432): erreur: l'identificateur "nullptr" est indéfini Il semble que CUDA8 ne soit pas compatible avec C++ 11? Même si j'active le CUDA_SEPARABLE_COMPILATION. – Yongzhi

+0

Je ne suis pas familier avec le support cuda d'OpenCV. Pardon. – Drone2537