4

私の環境:

  • Windows 7 64
  • CMake 2.8.10.2
  • Opencv 2.4.4
  • Visual Studio Express 2012

私の問題:

Opencvを使用し、vs11でビルドされたCMakeプロジェクトがあります。すべてがビルド済みのバイナリで動作します(私の場合はc:/ opencv / buildから)。Opencv設定の一部を変更したかったので、ソース(c:/ opencv / build2)からビルドする必要がありました。すべてがc:/ opencv / built2で正しくビルドおよびインストールされていますが、IDEからこのエラーが発生します:

エラーLNK1104:ファイルを開くことができません'C:\ opencv \ build2 \ lib \ Debug \ Debug \ opencv_objdetect244d.lib'

確かに、そのようなファイルはありません。私のCMakeLists.txtスクリプトは、呼び出しごとにDebug \(またはRelease)サブディレクトリを追加することにより、OpenCV_LIBS変数を破損しているようです。

MESSAGE ( STATUS "OpenCV_LIBS = ${OpenCV_LIBS}" )
FIND_PACKAGE ( OpenCV COMPONENTS core highgui imgproc objdetect REQUIRED )
MESSAGE ( STATUS "OpenCV_LIBS = ${OpenCV_LIBS}" )
FIND_PACKAGE ( OpenCV COMPONENTS core highgui imgproc objdetect REQUIRED )
MESSAGE ( STATUS "OpenCV_LIBS = ${OpenCV_LIBS}" )
FIND_PACKAGE ( OpenCV COMPONENTS core highgui imgproc objdetect REQUIRED )
MESSAGE ( STATUS "OpenCV_LIBS = ${OpenCV_LIBS}" )

出力:

OpenCV_LIBS = debug; C:/opencv/build2/lib/Debug/opencv_contrib244d.lib;(...)

OpenCV_LIBS = debug; C:/opencv/build2/lib/Debug/Debug/opencv_objdetect244d.lib;(...)

OpenCV_LIBS = debug; C:/opencv/build2/lib/Debug/Debug/Debug/opencv_objdetect244d.lib;(...)

OpenCV_LIBS = debug; C:/opencv/build2/lib/Debug/Debug/Debug/Debug/opencv_objdetect244d.lib;(...)

OpenCV_LIBS = debug; C:/opencv/build2/lib/Debug/Debug/Debug/Debug/Debug/opencv_objdetect244d.lib;(...)

CMakeスクリプトで何か問題がありますか?

4

1 に答える 1

1

OK、連続する呼び出しに数回含まれるとOpenCVConfig.cmake、変数が破損しているようです。OpenCV_LIBSFIND_PACKAGE()

簡単な修正は、次のFORCE91〜94に追加することOpenCVConfig.cmakeです。

# Provide the libs directories to the caller
set(OpenCV_LIB_DIR_OPT "C:/opencv/build2/lib" CACHE PATH "Path where release OpenCV libraries are located" FORCE)
set(OpenCV_LIB_DIR_DBG "C:/opencv/build2/lib" CACHE PATH "Path where debug OpenCV libraries are located" FORCE)
set(OpenCV_3RDPARTY_LIB_DIR_OPT "C:/opencv/build2/3rdparty/lib" CACHE PATH "Path where release 3rdpaty OpenCV dependencies are located" FORCE)
set(OpenCV_3RDPARTY_LIB_DIR_DBG "C:/opencv/build2/3rdparty/lib" CACHE PATH "Path where debug 3rdpaty OpenCV dependencies are located" FORCE)

変更するファイルはですC:\opencv\cmake\templates\OpenCVConfig.cmake.in

次に、OpenCVを再構築/再コンパイル/再インストールしてから、独自のプロジェクトを再インストールします。

于 2013-03-08T13:41:03.573 に答える