2015-06-14 2 views
-2

Прежде всего, я уже проверил многие вопросы LinkerError в stackoverflow. Но все кажется связанным с моей стороны. Позвольте мне поделиться некоторой информацией:LinkerErrors on opencv3.0 включен проект

Код:

#include<opencv\cv.h> 
#include<opencv\highgui.h> 

void main(){ 
    IplImage* img = cvLoadImage("C:\kaplan.jpg"); 
    cvNamedWindow("ImgDisp", CV_WINDOW_AUTOSIZE); 
    cvShowImage("ImgDisp", img); 
    cvWaitKey(0); 
    cvReleaseImage(&img); 
    cvDestroyWindow("ImgDisp"); 
} 

Системные настройки:

  • Конфигурация: Debug
  • Платформа: x64
  • VC++ Каталоги -> Исполняемые каталоги = C : \ opencv \ build \ x64 \ vc12 \ bin; $ (ExecutablePath)

  • VC++ Каталоги -> Библиотека каталогов =
    C: \ OpenCV \ построить \ x64 \ VC12 \ staticlib; C: \ OpenCV \ построить \ x64 \ VC12 \ LIB; $ (LibraryPath)

  • C/C++ -> Общие -> Additional Include каталоги =
    C: \ OpenCV \ построить \ включать \ opencv2; C: \ OpenCV \ построить \ Include; C: \ OpenCV \ построить \ включать \ OpenCV;% (AdditionalIncludeDirectories)

  • Linker -> General -> Дополнительные каталоги библиотек =
    C: \ opencv \ build \ x64 \ vc12 \ staticlib; C: \ opencv \ build \ x64 \ vc12 \ lib;% (AdditionalLibraryDirectories)

  • Компоновщик -> Ввод -> Дополнительные зависимости =
    opencv_calib3d300d.lib; opencv_core300d.lib; opencv_features2d300d.lib; opencv_flann300d.lib; opencv_hal300d.lib; opencv_highgui300d.lib; opencv_imgcodecs300d.lib; opencv_imgproc300d.lib; opencv_ml300d. Lib; opencv_objdetect300d.lib; opencv_shape300d.lib; opencv_stitching300d.lib; opencv_superres300d.lib; opencv_ts300d.lib; opencv_video300d.lib; opencv_videoio300d.lib; opencv_videostab300d.lib;% (AdditionalDependencies), полученные

Ошибка:

1> opencv_imgcodecs300d.lib (loadsave.obj): ошибка LNK2005: "общественность: __cdecl станд :: _ Container_base12 :: _ Container_base12 (аннулируются)" (?? 0_Container_base12 @ станд @@ QEAA @ XZ) уже определены в msvcprtd. Lib (MSVCP120D.dll)

1> opencv_core300d.lib (stat.obj): ошибка LNK2019: неразрешенный внешний символ ippicviNormDiff_L2_8s_C3CMR ссылки в функции «двойной __cdecl резюме :: норма (класс резюме :: _ InputArray Const &, класс резюме :: _ InputArray Const &, ИНТ, класс резюме :: _ InputArray Const &)» (? норма @ резюме @@ YANAEBV_InputArray @ 1 @ 0H0 @ Z)

1> opencv_core300d.lib (matmul.obj): ошибка LNK2019: неразрешенный внешний символ ippicviDotProd_32s64f_C1R ссылки в функции "двойной __cdecl резюме :: dotProd_32s (интермедиат сопз *, внутр сопз *, Int)" (dotProd_32s @ резюме @ @ YANPEBH0H @ Z)

1> c: \ users \ juhsis \ documents \ visual studio 2013 \ Projects \ Project1 \ x64 \ Debug \ Project1.exe: фатальная ошибка LNK1120: 528 нерешенных внешних

Итак, что я пропустил?

+0

Являются ли файлы opencv в библиотечных каталогах, которые вы там дали? Лично я бросаю .libs со всеми VS, поэтому мне не нужно разбираться с подобными вещами. – twentylemon

+0

Да, я установил каталог opensv libs и дважды проверял файлы. Я также копирую и вставляю все библиотеки в VS 2013. Ничего не меняется. @twentylemon –

+0

используйте eithers staticlibs или динамические, а не оба – berak

ответ

0

Я только что нашел источник проблемы. В opencv 3.0 я понял, что все файлы библиотеки, которые я ранее использовал и располагал в файле \ lib, были перемещены в \ staticlib. В файле \ lib есть только 2 библиотеки: opencv_world300d.lib; opencv_ts300d.lib. Затем я удаляю все ссылки на папку staticlib и все библиотеки под этой папкой и заменяю папку \ lib и библиотеки под этой папкой.

Вот изменения в настройках я в настоящее время с помощью:

  • Конфигурация: Debug
  • Платформа: x64

  • C/C++ -> Общие -> Additional Include каталоги =
    C: \ opencv \ build \ include;% (AdditionalIncludeDirectories)

  • Linker -> General -> Additional Lib окон- чательно каталоги =
    C: \ OpenCV \ построить \ x64 \ VC12 \ Lib;% (AdditionalLibraryDirectories)

  • Linker -> Input -> Дополнительные зависимости =
    opencv_world300d.lib; opencv_ts300d.lib;% (AdditionalDependencies)

Смежные вопросы