1. 程式人生 > 實用技巧 >編譯opencv3.1.0時出現錯誤:error: ‘NppiGraphcutState’ has not been declared

編譯opencv3.1.0時出現錯誤:error: ‘NppiGraphcutState’ has not been declared

安裝cuda之後再安裝opencv時出現錯誤:
 /data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared  
      typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat  
                                                       ^  
 /data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp:135:18: error: ‘NppiGraphcutState’ does not name a type  
          operator NppiGraphcutState*()  
                   ^  
 /data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp:141:9: error: ‘NppiGraphcutState’ does not name a type  
          NppiGraphcutState* pState; 


cuda8.0較新,opencv-2.4.11較早,要編譯通過需要修改原始碼:


修改/data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp

#if!defined(HAVE_CUDA)||defined(CUDA_DISABLER)

改為

#if!defined(HAVE_CUDA)||defined(CUDA_DISABLER)||(CUDART_VERSION>=8000)

重新編譯即可。