Я давно использую OpenCV 3.2.0.В последнее время мне нужно реализовать распознавание лиц с определением ориентиров, поэтому я решил снова собрать OpenCV с дополнительными модулями OpenCV.Тем не менее, кажется, что OpenCV 3.2.0 не совместим с последними дополнительными модулями OpenCV, поэтому я должен собрать его с последним OpenCV (который является 4.0.0)
Проблема в том, что я вПоймать 22 ситуации.
1.Если я использую mingw 32bit 5.1.0 для сборки OpenCV (который является компилятором в комплекте с Qt), у меня появляется следующая ошибка
CMakeFiles \ opencv_core.dir / objects.a: member CMakeFiles\ opencv_core.dir / objects.a (vs_version.rc.obj) в архиве не является объектом
2.Если я использую mingw 64bit 8.1.0 для сборки OpenCV, он работает нормально.Однако есть две ситуации, которые дают мне ошибку.
2.1.Если я использую mingw 32bit 5.1.0 для сборки проекта Qt с этими библиотеками OpenCV, выдается следующая ошибка:
D: \ opencv-build \ bin \ libopencv_core400.dll: -1: ошибка: файл не распознан: формат файла не распознан
Я подозреваю, что это связано с проблемой 32-64 бит.Компилятор может ожидать 32-битных библиотек, но библиотеки имеют 64-битный формат, потому что компилятор, использованный для сборки OpenCV, был 64-битным.
file format pei-i386
file format pei-x86-64
Первый - это формат файла библиотек OpenCV 3.2.0, который я использовалв прошлом и работал нормально с Qt.Второй - это формат файла вновь созданных библиотек OpenCV 4.0.0.
2.2 Если я использую mingw 64bit 8.1.0 для сборки проекта Qt с этими библиотеками OpenCV, выдается следующая ошибка:
collect2.exe: ошибка: ld вернул 5 выходstatus
Я подозреваю, что это произошло, потому что в основном Qt для 32-битных, а не 64-битных.
Что я хочу сделать, так это построить OpenCV 4.0.0, чтобы каким-то образом формат файлов этих библиотек OpenCV был pei-i386, а не pei-x86-64.Как мне этого добиться?