opencv 動的ライブラリを使用する Visual Studio 2012 のプロジェクトがあります。コンパイル、リンク、およびうまく機能しました。
動的ライブラリの代わりに静的ライブラリを使用するようにプロジェクトを変更したいと考えています。
プロジェクト VC++ ディレクトリのライブラリ ディレクトリを から変更しました
C:\thirdparty\opencv\build\x86\vc11\lib
宛先: C:\thirdparty\opencv\build\x86\vc11\staticlib
しかし、プロジェクトをビルドしようとすると、次のような多くのリンカー エラーが発生します。
Error 110 error LNK2001: unresolved external symbol _TIFFWriteScanline myproject\opencv_highgui245.lib(grfmt_tiff.obj)
さらに重要なことに、次のような多くのエラーが発生します。
Error 1 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in myproject.obj myproject\opencv_core245.lib(system.obj)
動的ライブラリを使用するプロジェクトを静的ライブラリを使用するように変換するには、他にどのような変更を行う必要がありますか?
編集 1
/md を /mt に変更し、いくつかの新しいライブラリを入力ライブラリのリストに追加した後:
opencv_calib3d245.lib
opencv_contrib245.lib
opencv_core245.lib
opencv_features2d245.lib
opencv_flann245.lib
libtiff.lib
libpng.lib
libjpeg.lib
libjasper.lib
IlmImf.lib
zlib.lib
opencv_gpu245.lib
opencv_haartraining_engine.lib
opencv_highgui245.lib
opencv_imgproc245.lib
opencv_legacy245.lib
opencv_ml245.lib
opencv_nonfree245.lib
opencv_objdetect245.lib
opencv_photo245.lib
opencv_stitching245.lib
opencv_ts245.lib
opencv_video245.lib
opencv_videostab245.lib
いくつかの新しいエラーが発生しています:
Error 9 error LNK2001: unresolved external symbol _AVIFileCreateStreamA@12 myproject\opencv_highgui245.lib(cap_vfw.obj)
Error 8 error LNK2001: unresolved external symbol _AVIFileGetStream@16 myproject\opencv_highgui245.lib(cap_vfw.obj)
Error 5 error LNK2001: unresolved external symbol _AVIFileInit@0 myproject\opencv_highgui245.lib(cap_vfw.obj)
Error 7 error LNK2001: unresolved external symbol _AVIFileOpenA@16 myproject\opencv_highgui245.lib(cap_vfw.obj)
どうやらいくつかのライブラリが不足しているようですが、どれですか?
編集 2 リストにライブラリを追加する必要があります。ライブラリの完全なリストは次のとおりです。
opencv_calib3d245.lib
opencv_contrib245.lib
opencv_core245.lib
opencv_features2d245.lib
opencv_flann245.lib
libtiff.lib
libpng.lib
libjpeg.lib
libjasper.lib
IlmImf.lib
zlib.lib
opencv_gpu245.lib
opencv_haartraining_engine.lib
opencv_highgui245.lib
opencv_imgproc245.lib
opencv_legacy245.lib
opencv_ml245.lib
opencv_nonfree245.lib
opencv_objdetect245.lib
opencv_photo245.lib
opencv_stitching245.lib
opencv_ts245.lib
opencv_video245.lib
opencv_videostab245.lib
Vfw32.Lib
comctl32.lib
これで問題は解決しました。