0

現在、CMake プロジェクトを Linux から OpenCV に依存する Windows に移行しようとしていますが、ライブラリを実行可能ファイルにリンクするのに問題があります。

いくつかのプライベートなものを省略して、おおよその CMakeLists.txt ファイルを以下に投稿しました。

project(my_project_name)
cmake_minimum_required(VERSION 2.8)

SET(CMAKE_CXX_FLAGS "-g -Wall")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin)

FIND_PACKAGE(OpenCV REQUIRED)

IF(NOT OpenCV_FOUND)
    MESSAGE(FATAL_ERROR "OpenCV not found")
ENDIF()

SET(PROJECT_HDRS
    #headers here
)

SET(PROJECT_SRCS
    #sources here
)

add_executable(${PROJECT_NAME} ${PROJECT_SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})

この CMakeLists.txt ファイルは Linux では問題なく動作しますが、Windows ではリンクに問題があります。私の最初の本能は、それが OpenCV の不適切なインストールだったということでしたか? OpenCVのインストール中に使用したおおよその手順は次のとおりです

  1. OpenCV 2.4.3 実行可能ファイル (自己解凍アーカイブ) をダウンロードします。
  2. いくつかのディレクトリに解凍します
  3. CMake-Gui を使用して OpenCV.sln を構成および生成する
  4. Visual Studio C++ 2010 Express で開き、デバッグ構成とリリース構成で ALL_BUILD プロジェクトをビルドします。
  5. INSTALL プロジェクトをビルドする

独自のプロジェクトをビルドしようとすると、「'cv::waitKey(int)' への未定義の参照」エラーが返され、リンカーの問題であると思われます。.lib ファイルを直接指定しようとしました、 そのような:

target_link_libraries(${PROJECT_NAME} C:/someDirectory/opencv_core243.lib)

それでも同じエラーが返されます。

これらの StackOverflow スレッドで説明されている方法も試しました: hereおよびhere

明白な何かが欠けている場合は事前にお詫びしますが、Windows での開発は多かれ少なかれ初めてであり、アイデアが不足しています。

4

2 に答える 2

0

私の知る限り、問題はそれvisual studio2010またはvc++2010付属しています。net framework 4.5

にダウングレードします.net framework4(つまり、アンインストール.net 4.5してインストールし4.0ます)。それは問題を解決するでしょう...私は上記の問題を解決するために頭をテーブルにぶつけました..そうでなければvisual c++、新しいサービスパックでパッチを当てます

于 2013-05-28T16:42:58.853 に答える