2016-12-17 3 views
1

Ich hatte CUDA 7.5 zuvor installiert und habe es gerade entfernt und CUDA 8.0 installiert. Danach tun hat Cmake geben Fehler auf jede Art von Sammlung gestartet, um diese Fehler zu geben:Fehler bei der Verwendung von cmake

CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message): 
    Could NOT find CUDA: Found unsuitable version "8.0", but required is exact 
    version "7.5" (found /usr/local/cuda-8.0) 
Call Stack (most recent call first): 
    /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:386 (_FPHSA_FAILURE_MESSAGE) 
    /usr/share/cmake-3.5/Modules/FindCUDA.cmake:949 (find_package_handle_standard_args) 
    /usr/local/share/OpenCV/OpenCVConfig.cmake:48 (find_package) 
    /usr/local/share/OpenCV/OpenCVConfig.cmake:291 (find_host_package) 
    CMakeLists.txt:3 (find_package) 


-- Configuring incomplete, errors occurred! 
See also "/home/cortana/Desktop/app/build/CMakeFiles/CMakeOutput.log". 
See also "/home/cortana/Desktop/app/build/CMakeFiles/CMakeError.log". 

Dieser Fehler zum Kompilieren einige opencv Code kam. Wenn man bedenkt, dass cmake nicht verwendet wird, kompiliert der Code in Ordnung, ist opencv nicht kaputt. Aber cmake zeigt ein solches Verhalten. Außerdem benutze ich nicht einmal Cuda, also weiß ich nicht, wie es kommt. Wie kann ich dieses Problem beheben?

Edit: Hier ist meine CMakeLists.txt:

cmake_minimum_required(VERSION 2.8) 
PROJECT (app) 
find_package(OpenCV REQUIRED) 

set(SRC 
    code.cpp 
) 


INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) 
link_directories(${CMAKE_BINARY_DIR}/bin) 
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) 
add_executable({PROJECT_NAME} ${SRC}) 

target_link_libraries({PROJECT_NAME} ${OpenCV_LIBS}) 

Antwort

2

Ich konnte mein Problem lösen. Es stellte sich heraus, dass die v3.1 von opencv gerade aktualisiert wurde, um CUDA 8.0 zu unterstützen. Ich habe den neuesten Quellcode neu erstellt und installiert, wodurch der Code wieder funktioniert.

0

Wenn Sie sicher sind, dass der Code, den Sie kompilieren werden, ist CUDA nicht verwenden, gehen Sie einfach auf die Datei CMakeLists.txt benannt und alles löschen, was zu CUDA bezogen wie findPackage cuda oder etwas ähnliches. Ich bezweifle jedoch, dass jemand dies in CMakeLists.txt setzen wird, ohne es zu benötigen.


Nach OPs edit:

es scheint, dass die OpenCV Version mit CUDA konfiguriert ist. Wenn Sie es loswerden wollen. Verwenden Sie etwas Ähnliches wie:

find_package(OpenCV COMPONENTS opencv_core opencv_highgui opencv_imgproc REQUIRED) 

Natürlich fügen Sie jedes andere Modul, das Sie wollen.

Hinweis: nicht getestet.

Verwandte Themen