В этой статье хотелось бы раскрыть нюансы сборки данной библиотеки. В моем случае эта процедура оказалась нетривиальной, с большим количеством граблей. Как известно, для последних версий OpenCV (на данный момент это 2.0 и больше) используется make-конфигуратор CMake. Далее я расскажу об этапах сборки и как с этим конфигуратором справиться. Прошу под кат.
Итак, что нам нужно.
- Исходники OpenCV под Windows. У меня они находятся в D:/libs/OpenCV-2.1.0/
- MinGW компилятор, заточенный под bada. У меня — D:\bada\1.0.0b3\Tools\Toolchains\Win32\bin. Вместо него, видимо, можно использовать обычный g++, если не требуется кросс-компиляция.
- Сам MinGW и его инклуды: D:/MinGW/includes
- CMake 2.6+
- Bash — намного удобнее виндового cmd.exe. Идет вместе с TortoiseGit. Установите, не пожалеете.
![]() |
| Рис. 1 — Указываем каталоги |
Нажимаем кнопку Configure. Если выскочил вопрос "Build directory does not exist, should I create it?", соглашаемся. Потом. Должен открыться диалог, который предлагает выбрать средства компиляции. Можно выбрать в качестве IDE MS Visual Studio, на выходе получим проект для работы с библиотекой OpenCV под Виндой. У нас же стоит задача собрать библиотеку средствами MinGW.
Вся эта затея не будет казаться странной, если я скажу зачем она. Бинарники в стандартной поставке идут с оптимизацией и использованием SSE, что в моем случае недопустимо из-за того, что я использую их для своего проекта под Samsung Wave. Этот телефон, как ни странно, не поддерживает инструкции SSE, из-за чего некоторые функции библиотеки невозможно использовать. Это заставило меня пересобрать OpenCV.Итак, в выпадающем меню выбираем "MinGW Makefiles", а также переключаем чекбокс на "Specify native compilers". Повторюсь, мне это нужно для того, чтобы использовать компилятор из поставки bada SDK. Нажимаем Finish.
![]() |
| Рис. 2 — Указываем пути к компилятору |
Далее наверняка выскочит Error. Вот тут и начинаются танцы с дудками :) Чтобы четко понять, что от нас хотят, переключаемся на Advanced View (сверху над списком).
В таблице будут строчки, подсвеченные красным. С ними и надо разобраться. Исправляем вручную прежде всего те, в значении которых есть слова NOTFOUND, избирательно. Выставляем их. Нажимаем опять кнопку Configure. И так до тех пор, пока внизу в логах не появится строчка "Configuring done". Теперь еще раз проверяем все параметры и нажимаем в последний раз Configure, а потом Generate.
Насчет параметров. Моей целью было снять галочки напротив USE_SSE, USE_SSE2.С такими параметрами я выполнял компиляцию.
Возможно, потом придется внести поправки. Достаточно просто загрузить CMake-GUI, все настройки восстановятся.
Теперь переходим к нашему каталогу, в котором находится сгенерированный проект (/build-mingw). Переходим в консоль и выполяем команду cs-make.
cs-make — платформо-специфический make под bada. Для обычных случаев, используйте make.
Если в ходе компиляции возникают ошибки (а они будут), то с ними нужно разобраться самостоятельно. Универсального совета не дам, действуйте по обстоятельствам: где-то надо добавить опцию компилятора (например, путь поиска инклудов), где-то ручками подправить исходники.
В конечном итоге, вы должны получить все необходимые бинарники. Если что-то упустил или по ходу возникли какие-то вопросы — спрашивайте в комментариях, постараюсь помочь чем могу.







