交叉编译OpenCV C ++应用程序ARM

时间:2015-03-05 16:40:17

标签: c++ linux opencv cross-compiling

我已经阅读了所有相关问题但没有成功尝试任何地方提到的任何事情。我是新手进行交叉编译,并且已经工作了一个多星期而没有任何进展。如果你认为我是愚蠢的或者忽略了某些事情,请原谅我。

所以我有一个在C ++中运行的应用程序,它在运行Ubuntu 14.04 x64的开发计算机上运行良好。我正在尝试为运行Lubuntu的Banana Pro进行交叉编译。根据Lemaker的文档,我应该使用“arm-linux-gnueabihf - ”交叉编译

到目前为止,我能得到的最远的是:

/usr/local/opencv-arm/usr/local/lib/libopencv_calib3d.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

无论我运行什么命令,都会收到此错误。以下是我尝试过的命令列表:

arm-linux-gnueabihf-g++ `arm-linux-gnueabihf-pkg-config arm-opencv --cflags` -Wall  test.cpp -o vis-300 `arm-linux-gnueabihf-pkg-config arm-opencv --libs`

arm-linux-gnueabihf-g++ `pkg-config arm-opencv --cflags` -Wall  test.cpp -o vis-300 `pkg-config arm-opencv --libs`

arm-linux-gnueabihf-gcc `pkg-config arm-opencv --cflags` -Wall  test.cpp -o vis-300 `pkg-config arm-opencv --libs`

arm-linux-gnueabihf-g++ `pkg-config arm-opencv --cflags`  test.cpp -o vis-300 `pkg-config arm-opencv --libs`

在具有不同错误的那些命令之前还有更多命令,例如:

arm-linux-gnueabihf-gcc: error trying to exec 'cc1plus': execvp: No such file or directory

arm-linux-gnueabihf-cpp fatal error too many input files

我尝试过普通的arm-linux-gnueabihf-gcc / g ++,4.6,4.7和4.8

我已经构建了opencv,使用这两个指南对hf进行了小的更改,两者都产生了相同的结果: http://processors.wiki.ti.com/index.php/Building_OpenCV_for_ARM_Cortex-A8 http://www.ridgesolutions.ie/index.php/2013/05/24/building-cross-compiling-opencv-for-linux-arm/

并且未包含在我使用此命令安装它,因为它将与我当前的x86_64安装冲突:

sudo make install DESTDIR=/usr/local/opencv-arm

上面的pkg-config行也指向我的自定义pkg配置文件arm-opencv.pc

# Package Information for pkg-config

prefix=/usr/local/opencv-arm/usr/local
exec_prefix=${prefix}
libdir=
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include

Name: OpenCV-arm
Description: Open Source Computer Vision Library
Version: 2.4.10
Libs:  ${exec_prefix}/lib/libopencv_calib3d.so ${exec_prefix}/lib/libopencv_contrib.so ${exec_prefix}/lib/libopencv_core.so ${exec_prefix}/lib/libopencv_features2d.so ${exec_prefix}/lib/libopencv_flann.so ${exec_prefix}/lib/libopencv_gpu.so ${exec_prefix}/lib/libopencv_highgui.so ${exec_prefix}/lib/libopencv_imgproc.so ${exec_prefix}/lib/libopencv_legacy.so ${exec_prefix}/lib/libopencv_ml.so ${exec_prefix}/lib/libopencv_nonfree.so ${exec_prefix}/lib/libopencv_objdetect.so ${exec_prefix}/lib/libopencv_ocl.so ${exec_prefix}/lib/libopencv_photo.so ${exec_prefix}/lib/libopencv_stitching.so ${exec_prefix}/lib/libopencv_superres.so ${exec_prefix}/lib/libopencv_ts.a ${exec_prefix}/lib/libopencv_video.so ${exec_prefix}/lib/libopencv_videostab.so -lrt -lpthread -lm -ldl
Cflags: -I${includedir_old} -I${includedir_new}

无论如何,我已经尝试了很多东西,只需在板上安装所有东西并在那里进行编译。任何帮助都非常感谢,请记住,我以前从未成功交叉编译过。我总是放弃并在董事会上编译。

0 个答案:

没有答案