Статическое связывание OpenCV в Eclipse, работающем в Windows

0

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

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

Вот что я пробовал до сих пор, я установил

  • C:\opencv\build\x86\mingw\install\include в качестве папки include;

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

Таким образом, похоже, что он все еще использует "динамическое связывание", поэтому я попытался добавить -static в опцию Miscellaneous, но затем я получил эти ошибки:

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.

Теги:
opencv

1 ответ

0

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

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

Если libraryA зависит от libraryB libraryA, то перед определением libraryA необходимо определить libraryB.

  • 0
    Я пытался добавить эти сторонние библиотеки, как вы сказали, но -lopencv_lapack и -lrt не найдены. Кстати, у вас есть какие-либо идеи, как мне "расположить" библиотеку OpenCV в правильном порядке? Как определить, что libraryA зависит от libraryB?
  • 0
    попробуй без лапак и лрт. Я понятия не имею. Я делаю попытку и тестовый шаблон, чтобы выяснить это

Ещё вопросы

Сообщество Overcoder
Наверх
Меню