roboforum.ru

Технический форум по робототехнике.

Установка OpenCV

Установка OpenCV

Letis » 04 мар 2016, 02:52

Здравствуйте.
Чего-то я не так делаю пытаясь запустить у себя OpenCV. Задача собрать и прикрутить к QtCreator-у. Нашёл огромное количество билдов (все чуть-чуть разные) но чего-то ни один не прокатывает у меня. Скачал CV 3.1. Распаковал. Теперь её же нужно собрать, ведь так? (а то я уже ни в чём не уверен). Скачал как везде и советуют CMake (3.5.0 - rc1). В пункте "Where is the source code:" прописываю путь к папке sources что распаковалась из OpenCV (D:/opencv/sources). В пункт "Where to build the binares:" ведь нужно указать куда собранные бинарники складывать? У меня это "D:/OpenCV-mingw". Жму кнопочку "Configure", выбираю "MinGW Makefiles", включаю там-же "Specify native compilers", затем кнопка "Next" и прописываю пути к компиляторам. Это "D:/Qt/Tools/mingw492_32/bin/gcc.exe" для С и "D:/Qt/Tools/mingw492_32/bin/g++.exe" для C++. И пишет он мне в Error-окошке "Error in configuration process, project files may be invalid", а снизу ещё добавляет "CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool." Он ведь кажется хочет мне сказать что компилятора не находит? Но Qt-программки же им компилируются - а значит он есть. Что я делаю не так?
ЗЫ: А может кто-то умеет её собрать QMake-ом?

Re: Установка OpenCV

Letis » 11 мар 2016, 17:39

Итак. Я его победил. Необходимо было в CMake поставить галочку Agvanced и в появившемся пункте CMAKE_MAKE_PROGRAM прописать путь к mingw32-make.exe. Потом правда он ругался на отсутствие .dll и пришлось временно прописать папку bin компилятора в PATH (вероятно не редактируя PATH можно, если запустить cmake-gui через Qt-шную консоль). Далее все пошло по плану.
Теперь возникло ещё несколько вопросов. В той папке куда все собралось есть папки bin, lib и include. Вполне ожидаемо в bin лежат .dll, в lib лежат .a (тут я рассчитывал увидеть .lib но интернет говорит что это тоже статические библиотеки), а вот в include почему то ни чего кроме .cmake. Есть ещё папка install где есть свои bin, lib и include и там те-же самые .dll и .a (только в меньших количествах) в include всё-таки лежат долгожданные .h и .hpp. Вот первые вопросы. Такая странная организация это просто особенности работы CMake и/или MinGW? Я прав когда решил что главнее то что в install и в проекте прописывал пути именно туда? Может всё остальное, кроме папки install, вообще можно поудалять?
Тестовые программки работают НО просят .dll даже когда я в проекте указываю только пути к .a файлам. Я как-бы ожидал что статические библиотеки будут и линковаться соответственно статически. Эти самые .a-файлы заметно меньше весят нежели их .dll-братья с теми же названиями и подозрительно называются по шаблоку libopencv_%название%310.dll.a. Я прав предполагая что .a не настоящие статические библиотеки а что-то типа ссылок на .dll присутствующие там вероятно ради совместимости с C(без плюсов)?


cron
Rambler\'s Top100 Mail.ru counter