CMakeLists.txt
C++のプロジェクトの場合、OpenCVライブラリを使用します。 cmakeを使用してプロジェクトを作成しようとすると、次の構成の問題が発生します。
CMake Error at CMakeLists.txt:15 (find_package):
Could not find module FindOpenCV.cmake or a configuration file for package
OpenCV.
Adjust CMAKE_MODULE_PATH to find FindOpenCV.cmake or set OpenCV_DIR to the
directory containing a CMake configuration file for OpenCV. The file will
have one of the following names:
OpenCVConfig.cmake
opencv-config.cmake
実際、Visual Studioで問題なく使用するパスの環境変数があります。 OpenCVを含めない場合、問題なく構成および生成できますが、問題を解決する必要があります。 cmakeがOpenCVパスを見つけられない理由や修正方法がわかりません。
このリンクで言及されている推奨事項も使用しました: FindOpenCV.cmake
誰もこの問題を抱えていましたか?
表示されるエラーは、cmakeにはすぐに使用できるファイルが含まれていないため、CMakeがFindOpenCV.cmakeファイルを見つけられないことです。したがって、1つを見つけて、cmakeが見つけられる場所に配置する必要があります。
ここから始めてください を見つけることができます。冒険心があるなら、自分で書くこともできます。
次に、プロジェクト内のどこかに追加し、CMAKEが検出できるようにCMAKE_MODULE_PATHを調整します。
例えば、あなたが持っている場合
CMakeLists.txt
cmake-modules/FindOpenCV.cmake
その後、あなたがする必要があります
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
Find_package(OpenCV)を実行する前にCMakeLists.txtファイルで
Linuxを使用している場合、OpenCV_DIR変数にopencv(OpenCVConfig.cmakeファイルを含む)のパスを入力するだけです。
export OpenCV_DIR=<path_of_opencv>
これとまったく同じ問題がありました。 FindOpenCV.cmake
ファイルに次の行を追加して修正しました。残りのコードの前の一番上に置きます。
set (OpenCV_DIR /home/cmake/opencv/compiled) #change the path to match your complied directory of opencv
基本的に、他のコンパイルがFindOpenCV.cmake
を見つけることができると仮定して、FindOpenCV.cmake
にopencvファイルの場所を伝えています。
find/-name "OpenCVConfig.cmake"
openCV_DIR =/path/found/aboveをエクスポートします
#include #include
オリジナルのcv.hではありません
私は同じエラーに直面しました。私の場合、この「OpenCVConfig.cmake」ファイルは/ usr/local/share/OpenCVにあります。 CMakeLists.txtに次の行を追加します
set(OpenCV_DIR /usr/local/share/OpenCV)
エラーメッセージが示唆するとおり。
windowsを使用している場合は、opencvパスをOpenCV_DIRに自分で追加できます。 (OpenCV_DIRは赤い領域にあります)
パスは「D:/ opencv244/build」のようなものです。
パスの下に「OpenCVConfig.cmake」ファイルがあります。
Fedoraマシンで「make」と入力すると、「cv.h」が見つからないというエラーが表示されました。 「OpenCVConfig.cmake」ファイルを変更して、これを修正しました。
前:
SET(OpenCV_INCLUDE_DIRS "$ {OpenCV_INSTALL_PATH}/include/opencv; $ {OpenCV_INSTALL_PATH}/include")
SET(OpenCV_LIB_DIR "$ {OpenCV_INSTALL_PATH}/lib64")
後:
SET(OpenCV_INCLUDE_DIRS "/ usr/include/opencv;/usr/include/opencv2")
SET(OpenCV_LIB_DIR "/ usr/lib64")
同じエラーが発生しました。Windowsを使用しています。コントロールパネルのパスに「C:\ opencv\build」(opencvフォルダー)を追加します。だから、それは大丈夫です!!
別の可能性は、OpenCV_DIR
CMakeLists.txtファイル内。たとえば、次のcmakeスクリプトが機能します。
cmake_minimum_required(VERSION 2.8)
project(performance_test)
set(OpenCV_STATIC ON)
set(OpenCV_CUDA OFF)
set(OpenCV_DIR "${CMAKE_SOURCE_DIR}/../install")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIR})
file(GLOB my_source_files ./src/*)
add_executable( performance_test ${my_source_files})
target_link_libraries(performance_test ${OpenCV_LIBS})
OpenCV_STATIC
およびOpenCV_CUDA
を呼び出す前にOpenCVConfig.cmake
。私の場合、ビルドされたライブラリはCUDAを使用しない静的ライブラリです。
Windowsを使用していますが、同じエラーメッセージが表示されます。関連する別の問題を見つけました。行末のパスでOpenCV_DIRを定義しました。ただし、コマンドラインに「パス」と入力すると、OpenCV_DIRが表示されませんでした。 Windowsにはおそらくパスの長さに制限があるため、私は見つけましたOpenCV_DIRを定義したものの一部にカットしましたそこで、パスの他の部分を削除しました。
@ hugh-pearseと@ leszek-hanuszの回答に従い、少し調整しました。私はubuntu 12.10リポジトリからopencv(libopencv-)*をインストールしましたが、同じ問題がありました。 _export OpenCV_DIR=/usr/share/OpenCV/
_で解決できませんでした(私のOpenCVConfig.cmakeがあるので)。 OpenCVConfig.cmakeファイルのいくつかの行も変更して解決しました。
_# ======================================================
# Include directories to add to the user project:
# ======================================================
# Provide the include directories to the caller
#SET(OpenCV_INCLUDE_DIRS "${OpenCV_INSTALL_PATH}/include/opencv;${OpenCV_INSTALL_PATH}/include")
SET(OpenCV_INCLUDE_DIRS "/usr/include/opencv;/usr/include/opencv2")
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
# ======================================================
# Link directories to add to the user project:
# ======================================================
# Provide the libs directory anyway, it may be needed in some cases.
#SET(OpenCV_LIB_DIR "${OpenCV_INSTALL_PATH}/lib")
SET(OpenCV_LIB_DIR "/usr/lib")
LINK_DIRECTORIES(${OpenCV_LIB_DIR})
_
そして、それは私のUbuntu 12.10で機能しました。 CMakeLists.txtにtarget_link_libraries(yourprojectname ${OpenCV_LIBS})
を忘れずに追加してください。