opencv在32位ubuntu中以64位运行编译

时间:2013-10-12 02:01:49

标签: c++ opencv ubuntu ubuntu-12.04 elf

我创建了一个示例Opencv C ++“。so”文件,它只显示opencv Python脚本传递的图像(即,我的python脚本将调用C ++“.so”文件并将图像传递给它)。 python和C ++之间的通信是通过Boost库完成的。

我在64位ubuntu机器上完成了所有这些。现在我需要运行我的python脚本,在32位ubuntu机器中调用“.so”,我收到以下错误。

cv2.so: wrong ELF class: ELFCLASS64

这是因为opencv“cv2.so”预计是32位?如何在ubuntu 64位机器上创建32位“cv2.so”?我还需要创建自己的“.so”文件(显示图像)为32位吗?

1 个答案:

答案 0 :(得分:3)

你是对的。在32-bit Ubuntu计算机上,您需要确保可执行文件及其所有依赖项都是32-bit。这意味着您需要在.so中重新编译32-bit(或从第三方获取)。
要编译32位库,您需要向编译器和链接器指明这一点,很可能带有一个标志(例如-m32时为gcc