2014-01-12 51 views
0

我试图为我的beaglebone黑色交叉编译opencv。所有似乎都很好,直到我添加了python支持cmake标志,因为即时通讯将需要我的项目python包装。在ubuntu上交叉编译opencv 2.4.5 for arm board(beaglebone black) - 在92%下连接CXX共享库错误

我有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 /平台/ LINUX /臂gnueabi.toolchain。 cmake的../

我感谢所有帮助

回答

1

当你的CMake的报告,发现只有Python中的86变型。因此,您需要一些嵌入式Linux发行版,如BuildrootOpenEmbedded以避免处理依赖性地狱,即您需要交叉编译Python,numpy及其所有依赖项,并且嵌入式Linux发行版将从您那里获得此项工作。

但还有更多的问题。其中最大的问题在于像LAPACK,BLAS等numpy依赖关系。这些库不太适合交叉编译。

OpenEmbedded似乎拥有支持Python的OpenCV食谱。在Buildroot中,它仍然是一项正在进行的工作。