7

OpenCV に依存するプロジェクトをビルドしようとしています。macports を使用して Opencv をインストールしました。プロジェクトをビルドしようとすると、cmake は次の出力を返します。

CMake Error at CMakeLists.txt:47 (FIND_PACKAGE):
  By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "OpenCV", but
  CMake did not find one.

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

  Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
  "OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
  provides a separate development package or SDK, be sure it has been
  installed.

この問題について少し調べて、次の env を追加しました。$HOME/.profile私のファイルへの変数

export DYLD_LIBRARY_PATH=/opt/local/lib:$DYLD_LIBRARY_PATH
export CMAKE_PREFIX_PATH=/opt/local

成功せずに。確認したところ、すべての opencv ファイルが /opt/local/lib および /opt/local/include/opencv ディレクトリにインストールされています。OpenCVConfig.cmake次のパスにもあり ます。

/opt/local/lib/cmake/OpenCVConfig.cmake

opencvがインストールされているパスをcmakeに知らせる方法は? 以前は、cmake を使用して自分で OpenCV をビルドし、/usr/local にインストールした後、他の修正を行わなくても問題なく動作しました。ただし、ffmpeg でいくつか問題が発生したため、今は macports の使用に切り替えました。

4

7 に答える 7

9

私にとってうまくいく別のオプションは、cmake opencv dirでenv値OpenCV_DIRを設定することでした:

export OpenCV_DIR=/opt/local/lib/cmake/
于 2013-02-20T19:03:56.653 に答える
1

最後に、OpenCVConfig.cmake ファイルのヘッダーを読み取りました。外部プロジェクトから使用するこれらの行を含めるように指示します。

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(MY_TARGET_NAME ${OpenCV_LIBS})

( include_directories を CMakeLists.txt に追加すると修正されました)

于 2015-09-04T21:46:37.897 に答える
1

macportsは伝統的に OpenCV を/opt/local/標準の代わりにインストールします/usr/local/

問題の解決策は次の場所に記載されています。

「OpenCV」のインストール プレフィックスを CMAKE_PREFIX_PATH に追加するか、「OpenCV_DIR」を上記のファイルのいずれかを含むディレクトリに設定します。

コマンドラインでプロジェクトをビルドするときは、必ず次を実行してください。

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/local/lib

CMAKE_PREFIX_PATH次に、cmakeのフラグを設定します。

cmake -D CMAKE_PREFIX_PATH=/opt/local ../
于 2012-10-17T17:24:17.897 に答える
1

MACPORT の問題ではありませんが、誰かがこれを参考にするかもしれません。@hugh-pearse と @leszek-hanusz のこの質問の回答を少し調整してフォローしました。ubuntu 12.10リポジトリ(libopencv-)*からopencvをインストールしましたが、同じ問題がありました。それを解決できませんでした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で機能しました。target_link_libraries(yourprojectname ${OpenCV_LIBS})CMakeLists.txt にを忘れずに追加してください。

于 2014-03-07T01:56:46.207 に答える
0

上記のアイデアをすべて無駄に試しました。@kengregson の手順を使用する以外に、フォルダーの名前を /usr/local/include/opencv2 に変更して、cpp ファイルのコンパイル時に選択されないようにしました。

于 2016-03-12T21:27:24.297 に答える