web-dev-qa-db-ja.com

モジュールFindOpenCV.cmakeが見つかりませんでした(構成プロセスのエラー)

CMakeLists.txtC++のプロジェクトの場合、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

誰もこの問題を抱えていましたか?

51
Jav_Rock

表示されるエラーは、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ファイルで

31
alanxz

Linuxを使用している場合、OpenCV_DIR変数にopencv(OpenCVConfig.cmakeファイルを含む)のパスを入力するだけです。

export OpenCV_DIR=<path_of_opencv>
20
leszek.hanusz

これとまったく同じ問題がありました。 FindOpenCV.cmakeファイルに次の行を追加して修正しました。残りのコードの前の一番上に置きます。

set (OpenCV_DIR /home/cmake/opencv/compiled) #change the path to match your complied directory of opencv

基本的に、他のコンパイルがFindOpenCV.cmakeを見つけることができると仮定して、FindOpenCV.cmakeにopencvファイルの場所を伝えています。

14
penner

find/-name "OpenCVConfig.cmake"

openCV_DIR =/path/found/aboveをエクスポートします

10
user6630590
  1. apt-get install libopencv-dev
  2. openCV_DIR =/usr/share/OpenCVをエクスポート
  3. cppファイルのヘッダーには次を含める必要があります。#include #include "opencv2/highgui/highgui.hpp"

#include #include

オリジナルのcv.hではありません

9
gaoxincun

私は同じエラーに直面しました。私の場合、この「OpenCVConfig.cmake」ファイルは/ usr/local/share/OpenCVにあります。 CMakeLists.txtに次の行を追加します

set(OpenCV_DIR /usr/local/share/OpenCV)

エラーメッセージが示唆するとおり。

5
YuZ

windowsを使用している場合は、opencvパスをOpenCV_DIRに自分で追加できます。 (OpenCV_DIRは赤い領域にあります)

パスは「D:/ opencv244/build」のようなものです。

パスの下に「OpenCVConfig.cmake」ファイルがあります。

3
user4728427

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")

1
Hugh Pearse

同じエラーが発生しました。Windowsを使用しています。コントロールパネルのパスに「C:\ opencv\build」(opencvフォルダー)を追加します。だから、それは大丈夫です!!

1
Albert Yun

別の可能性は、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を使用しない静的ライブラリです。

1
feelfree

Windowsを使用していますが、同じエラーメッセージが表示されます。関連する別の問題を見つけました。行末のパスでOpenCV_DIRを定義しました。ただし、コマンドラインに「パス」と入力すると、OpenCV_DIRが表示されませんでした。 Windowsにはおそらくパスの長さに制限があるため、私は見つけましたOpenCV_DIRを定義したものの一部にカットしましたそこで、パスの他の部分を削除しました。

1
Roy

@ 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})を忘れずに追加してください。

0
aguadopd