2017-08-10 100 views
0

即時通訊使用ubuntu 14.04。我已經成功安裝了vtk8.0.0。opencv無法與vtk_on

現在我想用vtk構建opencv2.4.13.2。

而且總會有錯誤,請參閱下文。

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.... 

有人有想法,該如何解決?非常感謝!

回答

0

VTK 8.0和更高版本需要一個C++ 11編譯器(nullptr是一個C++ 11功能)。你安裝了一個預先構建的VTK嗎?如果是這樣,請檢查你正在使用gcc 4.8或更高版本,並確保你的C++標誌包括-std=c++11(你可以嘗試將其添加到您的OpenCV的建立CMakeCache.txtCMAKE_CXX_FLAGS條目,看看錯誤消失。

+0

我建造VTK所以我認爲我有C++編譯器,但它不會被默認使用,我怎樣才能將它添加到CMakeCache.txt中?像這樣? //編譯器在所有構建類型中使用的標誌 CMAKE_CXX_FLAGS:STRING =「-std = C++ 11」 – Yongzhi

+0

我想也許這個錯誤已經消失了,但是我現在在使用CUDA時遇到了麻煩[29%]構建NVCC(設備)對象 /usr/lib/gcc/x86_64-linux-gnu /4.8/include/stddef.h(432):error:identifier「nullptr」is undefined。 看來,CUDA8不是與C++ 11兼容?即使我激活了CUDA_SEPARABLE_COMPILATION。 – Yongzhi

+0

我不熟悉OpenCV的cuda支持。抱歉。 – Drone2537