在ubuntu上交叉编译opencv 2.4.5 for arm board(beaglebone black) - 链接CXX共享库错误率为92%

时间:2014-01-12 20:36:30

标签: python opencv ubuntu arm cross-compiling

我正在尝试为我的beaglebone black交叉编译opencv。一切似乎都很好,直到我为cmake标志添加python支持,因为我将需要我的项目的python包装器。

我安装了numpy和python-dev,我目前正在运行python 2.7.3。 我安装了两个: sudo apt-get install numpy sudo apt-get install python-dev

这就是我得到的:

Scanning dependencies of target opencv_python
[ 92%] Building CXX object modules/python/CMakeFiles/opencv_python.dir/src2/cv2.cpp.o
**Linking CXX shared library** ../../lib/cv2.so
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libpython2.7.so when searching for -lpython2.7
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libpython2.7.a when searching for -lpython2.7
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: cannot find -lpython2.7
collect2: ld returned 1 exit status
make[2]: *** [lib/cv2.so] Error 1
make[1]: *** [modules/python/CMakeFiles/opencv_python.dir/all] Error 2
make: *** [all] Error 2

我正在使用opencv的linux dist中为arm设备提供的可用工具链。除了那之外,我真的没有改变任何其他东西。

我的python依赖项有问题吗?

使用的cmake标志: cmake -DSOFTFP = ON -DENABLE_NEON = ON -D BUILD_ZLIB = ON -D BUILD_NEW_PYTHON_SUPPORT = ON -DCMAKE_TOOLCHAIN_FILE = .. / opencv-2.4.5 / platforms / linux / arm-gnueabi.toolchain.cmake ../

我感谢任何帮助

1 个答案:

答案 0 :(得分:1)

正如您的CMake报告,它只找到x86的Python变体。因此,您需要一些嵌入式Linux发行版,如BuildrootOpenEmbedded,以避免处理依赖地狱,即您需要交叉编译Python,numpy及其所有依赖项和嵌入式Linux发行版将需要你的这份工作。

但还有更多问题。其中一个最大的问题在于像LAPACKBLAS这样的numpy依赖项。这些库不太适合交叉编译。

OpenEmbedded似乎有支持OpenCV的配方。在Buildroot中,它仍在进行中。