2016-09-28 6 views
3

を見つけることができませんでしたCMakeの設定がこのエラーで失敗するいくつかの理由があります。はOpenCVModules.cmakeがOpenCVConfig.cmakeと同じフォルダではなくのためである(OpenCVの)私が初めてこれをやっているが、CMakeのをfind_packageで軌道に乗ることができませんでした</p> <p>をロードファイルOpenCVModules.cmake

私は、これはVS 2010 Expressの軌道に乗るためにきましたが、私はいずれかを選択することが許されてるのVisual Studio Expressの2010年、CMakeののv2.8.0とOpenCVのv2.4.9

CMake Error at D:/opencv/mybuild/install/x86/vc10/lib/OpenCVConfig.cmake:49 (include): 
    include could not find load file: 

    /OpenCVModules.cmake 
Call Stack (most recent call first): 
    CMakeLists.txt:19 (FIND_PACKAGE) 

を使用してWindowsによこのプロジェクトのCMakeとOpenCVの互換性のあるバージョンです。

私はこれをCMakeLists.txtで行い、 "OpenCVConfig.cmake"はOpenCVに同梱されているデフォルトのものです。私はそれを変更しませんでした。 OpenCVConfig.cmakeから

SET(OpenCV_DIR "D:/opencv/mybuild") 
# this project requires OpenCV, so find it 
FIND_PACKAGE(OpenCV) 
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) 

ライン#49は右方向に任意のヘルプは大歓迎です。この

include(${CMAKE_CURRENT_LIST_DIR}/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake) 

のように見えます。ありがとう。

UPDATE1: パスをハードコーディングして行番号49を変更すると動作します。

include(D:/opencv/mybuild/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake) 

$ {CMAKE_CURRENT_LIST_DIR}が適切に設定されていない理由があります。 これは動的に変更された変数のようです。なぜこれは期待どおりに設定されていませんか?

+0

OpenCVConfig.cmakeを自分で作成しましたか?行49はどのように見え、渡す変数には何が含まれていますか? –

+0

@RobertPrévost、ありがとう。あなたの質問に答えて私の質問を更新しました – Arun

答えて

2

OpenCV 2.4.9以前のCMakeバージョン2.8.3以前は適切にサポートされていませんでした。特に、これはCMAKE_CURRENT_LIST_DIRが生成されたOpenCVConfig.cmakeの定義された変数ではないことを意味します。これにより、OpenCVModules.cmakeへのパスが誤って形成されます。少なくともOpenCVConfig.cmakeのこの厄介な行に関しては、古いバージョンのCMakeとの互換性は2.4.11まで追加されていませんでした(これは./cmake/templates/OpenCVConfig.cmake.inOpenCV's githubに見ることで確認しました)。

CMakeとOpenCVのどちらのバージョンを使用するかを選ぶことができたら、CMake(> = 2.8.12)の最新リリースとOpenCV 2.4(2.4.13.1)の最新バージョンを使用することをお勧めします。またはOpenCV 3.1。

+1

あなたは私の一日を保存しました! CMake 2.8.12とOpenCV 2.4(2.4.13.1)のコンボは魅力的です。ありがとうございました! – Arun

関連する問題

 関連する問題