, так как выпуск OpenCV 2.3 наконец вышел, я хотел скомпилировать и установить этот последний выпуск в моей системе. Поскольку я часто работаю с Qt и QtCreator, я, конечно, хотел иметь возможность использовать его в своих проектах Qt. Я уже несколько часов пробовал несколько методов, но всегда получаю ошибки:
Первая попытка: компиляция OpenCV 2.3 с WITH_QT
Сначала я хотел сделать это так же, как я сделал с выпуском 2.2, который работал хорошо для меня. Для этого я следовал этому руководству: http://knowtheabc.wordpress.com/2011/02/25/windows-opencv-and-qt-creator/
- Скачал исходный код
- Настроил CMake и сказал ему создавать MInGW Makefiles и указал пути к
g++.exe
, gcc.exe
и qmake.exe
в моих путях C: \ Qt ..., проверил WITH_QT и сгенерировал Makefiles для выпуска.
- Собрал и установил его в оболочку, используя
mingw32-make
и mingw32-make install
После того, как это было успешно завершено, мне просто нужно было добавить пути к моему файлу ".pro" и я смог создать красивое программное обеспечение, которое использует OpenCV (в то время, когда я использовал версию 2.2). В основном последняя часть описана здесь: http://knowtheabc.wordpress.com/2011/02/25/opencv-in-qt/
Так что я попробовал то же самое с выпуском 2.3, который успешно скомпилирован, как и со старым выпуском. Он даже создает мою примерную программу, но как только я ее запускаю, она снова закрывается и возвращает: -1073741515
Вторая попытка: использование готового суперпакета OpenCV с использованием MinGW
Поскольку первый метод не сработал, я попытался использовать предварительные версии. Хотя они не имеют WITH_QT, я все же хотел попробовать.
Итак, я скачал суперпакет, извлек его и где-то положил. Затем я хотел сделать то же самое, что и раньше, и добавил пути к папке include и dll в мой файл .pro:
INCLUDEPATH+= C:/workspace/opencv/OpenCV2.3/build/include
LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/*.dll
В качестве компилятора я использовал MinGW-компилятор, который поставляется с текущим Qt SDK. Но это вылетает при сборке:
C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/libopencv_calib3d230.dll: file not recognized: File format not recognized
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\CoinDetector.exe] Error 1
mingw32-make: *** [release] Error 2
Третья попытка: точно так же, как вторая, но с использованием компилятора VC2008
Я попробовал то же самое с компилятором vc2008, который также поставляется с Qt SDK. Поэтому я выбрал компилятор и адаптировал путь в файле ".pro" для использования:
LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/*.dll
Но это также дает сбой с ошибкой, что он не может прочитать dll:
C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/opencv_calib3d230.dll : fatal error LNK1107: Ungültige oder beschädigte Datei: Lesen bei 0x2F0 nicht möglich.
Так вот мои настройки:
- Win7 Professional x64
- Установлен последний Qt SDK (4.7.3)
- OpenCV 2.3 release
У кого-нибудь есть идеи, что здесь может быть не так? Буду рад любой помощи!