У меня есть проект в visual studio 2012, который использует динамические библиотеки opencv. Он скомпилирован, связан и хорошо работает.
Я хочу изменить проект, поэтому вместо динамических библиотек он использует статические библиотеки.
Я изменил каталоги библиотек в каталоге проекта VС++ из
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 to/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 [email protected] myproject\opencv_highgui245.lib(cap_vfw.obj)
Error 8 error LNK2001: unresolved external symbol [email protected] myproject\opencv_highgui245.lib(cap_vfw.obj)
Error 5 error LNK2001: unresolved external symbol [email protected] myproject\opencv_highgui245.lib(cap_vfw.obj)
Error 7 error LNK2001: unresolved external symbol [email protected] 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
Это решило проблему.