2014-12-15 2 views
4

Я знаю, что этот вопрос all overplace, но все же волшебная палочка добавления библиотек в свойства проекта не работает для меня.opencv: нерешенный внешний символ

Я следовал tutorial for Visual Studio (2013 у меня есть здесь) и environment variable setup для OpenCV 3.0 бета.

И это тот же код на Проверьте его! раздел. Вот заголовок сборки в vs:

1>------ Build started: Project: OpenCVTest, Configuration: Debug Win32 ------ 
1>opencv_core300d.lib(matrix.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "enum IppStatus (__stdcall*__cdecl cv::getFlipFunc(int))(void *,int)" ([email protected]@@[email protected]@[email protected]@Z) 
1>opencv_core300d.lib(matrix.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "enum IppStatus (__stdcall*__cdecl cv::getFlipFunc(int))(void *,int)" ([email protected]@@[email protected]@[email protected]@Z) 
1>opencv_core300d.lib(matrix.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "enum IppStatus (__stdcall*__cdecl cv::getFlipFunc(int))(void *,int)" ([email protected]@@[email protected]@[email protected]@Z) 
1>opencv_core300d.lib(matrix.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "enum IppStatus (__stdcall*__cdecl cv::getFlipFunc(int))(void *,int)" ([email protected]@@[email protected]@[email protected]@Z) 
1>opencv_core300d.lib(matrix.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "enum IppStatus (__stdcall*__cdecl cv::getSortFunc(int,bool))(void *,int)" ([email protected]@@[email protected]@[email protected][email protected]) 
1>opencv_core300d.lib(matrix.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "enum IppStatus (__stdcall*__cdecl cv::getSortFunc(int,bool))(void *,int)" ([email protected]@@[email protected]@[email protected][email protected]) 

Остальная часть журнала такая же. Я использовал содержимое каталога opencv \ build \ x86 \ vs12 для lib и bin каталогов. Я слепо использую опцию /MDd в C/C++ -> Code Generation-> Runtime Library. Что не так?

+2

Эти символы взяты из новой библиотеки сторонних разработчиков ippicv, которая содержит подмножество полезных функций Intel IPP. Попытайтесь найти ippicvmt.lib и обязательно добавьте это в список ссылок, и это путь к каталогам библиотек добавления. Я не уверен насчет '/ MD' против'/MT'. Возможно, вам придется переключиться. На самом деле, я удивлен, что библиотека ippicv уже не статически связана с opencv. – chappjc

+0

Спасибо @chappjc. Я использовал ваше руководство и другие, чтобы заставить его работать. Я отвечу на него ниже. – MadeOfAir

ответ

11

Я добавил $ (OPENCV_DIR) \ staticlib к Library Directories, а также Linker-> Дополнительная библиотека Directores и добавил следующее Linker-> Вход-> Дополнительные зависимостями:

ippicvmt.lib 
IlmImfd.lib 
libtiffd.lib 
libpngd.lib 
libjasperd.lib 
libjpegd.lib 
libwebpd.lib 
zlibd.lib 
comctl32.lib 

И пример теперь работает.

+1

Я не знаю, почему они оставили «ippicvmt.lib» из примера установки ... – chappjc

+0

, что экономит мой день, большое вам спасибо! – MeM

3

К сожалению, это решение не сработало для меня. Для тех, кто в аналогичной ситуации:

Он может работать, добавляя в качестве дополнительных зависимостей (Linker -> Input -> Additional Dependencies :) только те библиотеки, которые находятся в моей папке $ (OPENCV_DIR) \ lib. А именно: opencv_ts300d.lib; opencv_world300d.lib.

+0

Да, это верно для новой версии opvv cv2 (300). – visoft