MSYSシェル環境のWindowsでopencvを使用してデモアプリを正常に構築しました。
ビルド済みのopencvインストーラーを使用せず、ソースをローカルにダウンロードしてコンパイルしました(これが推奨される方法です)。
opencvをビルドしてmakeinstallを実行すると、すべてのファイルが次の場所に表示されます。
/e/deps/libopencv/build/install/
次の行に沿ってcmakeディレクティブを使用して、これに対してサンプルアプリケーションを正常に構築できます。
find_package(OPENCV REQUIRED)
link_directory(${OpenCV_LIB_DIR})
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(target ${OpenCV_LIBS})
ここで完全に明確にするために:バイナリの構築は成功しています。
これで、シェルから実行すると、次のメッセージが表示されます。
The program can't start because libopencv_core231.dll is missing from your computer.
Try reinstalling the program to fix this problem.
だから...私は図書館がどこにあるか知っています:
$ ls /e/deps/libopencv/build/install/lib/
libopencv_calib3d231.dll.a libopencv_features2d231.dll.a libopencv_highgui231.dll.a libopencv_ml231.dll.a libopencv_video231.dll.a
libopencv_contrib231.dll.a libopencv_flann231.dll.a libopencv_imgproc231.dll.a libopencv_objdetect231.dll.a
libopencv_core231.dll.a libopencv_gpu231.dll.a libopencv_legacy231.dll.a libopencv_ts231.a
今何?
私はcmakeに静的バイナリを構築させることを試みることができたと思いますが、それはかなり極端に思えます。
どうすれば1)ウィンドウまたは2)MSYS環境を幸せにすることができますか。WindowsのLD_LIBRARY_PATHのようなものですか?
それとも、これは問題ではありません、そして私は実際に(外観にもかかわらず)バイナリがコンパイルされた方法をどういうわけか台無しにしましたか?
編集:
NB。何らかの理由で、私のライブラリは.dll.aファイルであり、リモートで関連している場合は.dllsではないようです(lsの結果を参照)。