2014-01-12 54 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中,它仍然是一項正在進行的工作。