2014-02-19 2 views
0

Я пытаюсь статические ссылки на библиотеки OpenCV на Windows. Я уже построил библиотеку с BUILD_SHARED_LIBSOFF, и я создал проект на Eclipse (кстати, использую MinGW). C:\opencv установлен как мой источник, а C:\opencv\build\x86\mingw установлен как пункт назначения на cmake-gui. Затем я выполнил mingw32-make и mingw32-make install на C:\opencv\build\x86\mingw.Статическая ссылка OpenCV на Eclipse, работающая под Windows

Мой вопрос в том, как статические ссылки на эти библиотеки на Eclipse, я пробовал несколько способов, но мое приложение OpenCV по-прежнему не работает на компьютерах без установленного OpenCV.

Вот что я пытался до сих пор, я поставил

  • C:\opencv\build\x86\mingw\install\include как включить папку;

  • C:\opencv\build\x86\mingw\lib как путь к библиотеке на "Linker" и у меня есть opencv_core246, opencv_highgui246, opencv_objdetect246 и opencv_imgproc246.

Таким образом, кажется, что он все еще использует «динамическое связывание», поэтому я попытался добавить -static на Прочих вариант, но тогда я получил эти ошибки:

C:\opencv\build\x86\mingw\lib\libopencv_imgproc246.a(templmatch.cpp.obj):templmatch.cpp: 
(.text$_ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x1ce5): 
undefined reference to `cv::dft(cv::_InputArray const&, cv::_OutputArray const&, int, int)' 

C:\opencv\build\x86\mingw\lib\libopencv_imgproc246.a(templmatch.cpp.obj):templmatch.cpp: 
(.text$_ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x1dab): 
undefined reference to `cv::mulSpectrums(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, int, bool)' 

C:\opencv\build\x86\mingw\lib\libopencv_imgproc246.a(templmatch.cpp.obj):templmatch.cpp: 
(.text$_ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x1ded): 
undefined reference to `cv::dft(cv::_InputArray const&, cv::_OutputArray const&, int, int)' 

collect2: ld returned 1 exit status 

Любой человек может предоставить мне реальную шаг- пошаговая статическая ссылка на библиотеку OpenCV на Windows с использованием Eclipse и MinGW?

EDIT: Я узнал, что в VS мы должны добавить библиотеки, такие как: libtiff.lib libpng.lib libjpeg.lib libjasper.lib IlmImf.lib zlib.lib, который я сделал, но проблема не устранена. Затем я слышал, что добавление Vfw32.Lib comctl32.lib решило проблему, но, к сожалению, я думаю, что они специфичны для VS.

ответ

0

Добавление сторонних библиотек -llibjasper -llibtiff -lopencv_lapack -lzlib -lpng -ljpeg -lpthread -lrt должно решить проблему.

Попробуйте составить простой базовый код OpenCV. Порядок связывания библиотек важен при связывании статических библиотек.

Если libraryA зависит от libraryB, тогда libraryA должен быть определен до определения libraryB.

+0

Я попытался добавить эти сторонние библиотеки, как вы сказали, но -lopencv_lapack и -lrt не найден. Кстати, у вас есть идеи, как я должен «упорядочить» библиотеку OpenCV в правильном порядке? Как определить libraryA зависит от libraryB? – user2900552

+0

попробуйте без lapack и lrt. У меня нет большой идеи. Я пытаюсь проверить шаблон, чтобы узнать это –

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