OpenCV скомпилирован в 64-разрядной версии в 32-разрядной Ubuntu

У меня есть образец OpenCV C ++ «.so» файла, который будет просто отображать изображения, переданные скриптом opencv Python (т.е. мой скрипт Python будет вызывать файл C ++ «.so» и передавать ему изображение). Связь между python и C ++ осуществляется с помощью библиотеки Boost.

Я сделал все это на 64-битной машине с Ubuntu. Теперь мне нужно запустить скрипт Python, который вызывает «.so» на 32-битной машине с Ubuntu, где я получаю сообщение об ошибке ниже.

cv2.so: wrong ELF class: ELFCLASS64

Это из-за opencv «cv2.so» ожидается 32-битным? Как я могу создать 32-битный «cv2.so» в 64-битной машине Ubuntu? Также мне нужно создать свой собственный файл «.so» (который отображает изображения) как 32-битный?

2

Решение

Ты прав. На ваше 32-bit Ubuntu машина, вы должны убедиться, что ваш исполняемый файл и все его зависимости 32-bit, Это означает, что вам нужно пересобрать .so в 32-bit (или получить его от третьего лица).
Чтобы скомпилировать 32-битные библиотеки, вам нужно указать это вашему компилятору и компоновщику, скорее всего, с флагом (например, -m32 в случае gcc)

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]