我正在尝试为我的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 ../
我感谢任何帮助
答案 0 :(得分:1)
正如您的CMake报告,它只找到x86的Python变体。因此,您需要一些嵌入式Linux发行版,如Buildroot或OpenEmbedded,以避免处理依赖地狱,即您需要交叉编译Python,numpy及其所有依赖项和嵌入式Linux发行版将需要你的这份工作。
但还有更多问题。其中一个最大的问题在于像LAPACK,BLAS这样的numpy依赖项。这些库不太适合交叉编译。
OpenEmbedded似乎有支持OpenCV的配方。在Buildroot中,它仍在进行中。