美文网首页OpenCvOpenCV嵌入式 Linux C ARM
交叉编译ARM平台的OpenCV1.0

交叉编译ARM平台的OpenCV1.0

作者: 网路元素 | 来源:发表于2017-09-14 09:44 被阅读35次

首先,从http://www.opencv.org.cn下载1.0的源码包,然后解压出来,进入解压后的目录,再进行下面的修改:

将configure 文件下列内容注释掉(有两处),只保留GTK_CFLAGS="" 、GTK_LIBS="" 、have_gtk=no 三项内容(如下黑体所示);

# if test "$PKG_CONFIG" = "no" ; then

# echo "*** The pkg-config script could not be found. Make sure it is"

# echo "*** in your path, or set the PKG_CONFIG environment variable"

# echo "*** to the full path to pkg-config."

# echo "*** Or seehttp://www.freedesktop.org/software/pkgconfigto get pkgconfig."

# else

# PKG_CONFIG_MIN_VERSION=0.9.0

# if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then

# echo "$as_me:$LINENO: checking for \"gtk+-2.0 gdk-pixbuf-2.0\"" >&5

echo $ECHO_N "checking for \"gtk+-2.0 gdk-pixbuf-2.0\"... $ECHO_C" >&6

# if $PKG_CONFIG --exists ""gtk+-2.0 gdk-pixbuf-2.0"" ; then

# echo "$as_me:$LINENO: result: yes" >&5

#echo "${ECHO_T}yes" >&6

# succeeded=yes

# echo "$as_me:$LINENO: checking GTK_CFLAGS" >&5

#echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6

# GTK_CFLAGS=`$PKG_CONFIG --cflags ""gtk+-2.0 gdk-pixbuf-2.0""`

# echo "$as_me:$LINENO: result: $GTK_CFLAGS" >&5

#echo "${ECHO_T}$GTK_CFLAGS" >&6

#

# echo "$as_me:$LINENO: checking GTK_LIBS" >&5

#echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6

# GTK_LIBS=`$PKG_CONFIG --libs ""gtk+-2.0 gdk-pixbuf-2.0""`

# echo "$as_me:$LINENO: result: $GTK_LIBS" >&5

#echo "${ECHO_T}$GTK_LIBS" >&6

# else

GTK_CFLAGS=""

GTK_LIBS=""

## If we have a custom action on failure, don't print errors, but

## do set a variable so people can do so.

# GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors ""gtk+-

2.0 gdk-pixbuf-2.0""`

# fi

# else

# echo "*** Your version of pkg-config is too old. You need version

#$PKG_CONFIG_MIN_VERSION or newer."

# echo "*** Seehttp://www.freedesktop.org/software/pkgconfig"

# fi

# fi

# if test $succeeded = yes; then

# have_gtk=yes

#cat >>confdefs.h <<\_ACEOF

##define HAVE_GTK

#_ACEOF

# else

have_gtk=no

# fi

修改完后进行下面的操作:

安装好交叉编译工具链后再进行如下操作:

./configure --host=arm-linux --prefix=/home/guochongxin/opencv-arm2/ --without-gtk --without-carbon --without-v4l --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig

在命令行里面加入了--without-v4l,因为编译时会出错,还有我暂时不用到v4l,如果你要做摄相头方面的应用,就需要去掉该参数,但编译时会出错,这个问题我也在改进中,有解决方法就会发出来共享.

上面的配置没有把libjpeg编译进去,也不会添加v4l,而配置修改为:

./configure --host=arm-linux --prefix=/home/guochongxin/opencv-arm --without-gtk --without-carbon--without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swigCXX=arm-linux-g++ CPPFLAGS=-I/home/guochongxin/crosstool/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include CFLAGS=-I/home/guochongxin/crosstool/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include LDFLAGS=-L/home/guochongxin/crosstool/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib

则在编译到v4l时没有错误提示,也把libjpeg编译进去,因为把libjpeg的路径也通过配置设置进去了,注意libjpeg之前要交叉编译才可以,也注意上面的路径,注意libjpeg库要放到交叉编译工具链的库中.

接下来进行下面的操作:

make

make install

这里会在/home/guochongxin/opencv-arm2/目录下安装编译成功的文件,接下来如果需要编译代码,则需要设置如下的环境变量:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/guochongxin/opencv-arm2/lib/pkgconfig/

编译程序的方法是:

arm-linux-g++ `pkg-config --cflags --libs opencv`source.cpp -o destination

注意上面两个黑点是键盘上左上角波浪号在按下Shift键后输入的,而不是上引号,要区分开来.

上面步骤只是成功后发布出来,可能有小部分有问题,请根据实际情况修改,仅供参考,用到的交叉编译工具链是3.4.5版本的,制作过程在前面的博文有发表出来.

参考资料:《OpenCV 在Liod 开发板的移植及其应用》(华东师范大学电子系嵌入式竞赛组)

相关文章

  • 交叉编译ARM平台的OpenCV1.0

    首先,从http://www.opencv.org.cn下载1.0的源码包,然后解压出来,进入解压后的目录,再进行...

  • 音视频系列---1.3交叉编译

    概念 交叉编译:某个平台上,编译另一种平台的可执行程序,就是交叉编译,比如在 x86 平台上,编译 arm 平台的...

  • WebRTC arm-linux库编译

    安装交叉编译工具 WebRTC的工程已经支持arm-linux平台库的编译 编译环境ubuntu14.04 然后执...

  • [arm-linux学习-(makefile)]

    我们在需要编译出运行在ARM平台上的代码,所使用的交叉编译器为arm-linux-gcc。 基本概念 首先介绍下编...

  • JNI项目搭建

    交叉编译 在一个平台上去编译另一个平台上可以执行的本地代码 cpu平台 arm x86 mips 操作系统平台 ...

  • arm交叉编译

    1.arm 交叉编译的配置 sudo apt-get install build-essential 更新一下依赖...

  • Linux上交叉编译环境配置

    基础知识: 交叉编译:在一个平台上生成另一个平台上的可执行代码,例如本篇在Linux上编译arm平台应用; 静态编...

  • Linux下ARM程序的编译运行及调试

    Linux下ARM程序的编译运行及调试 环境:Ubuntu18.04 安装交叉编译环境arm-linux-gcc-...

  • mini2440移植madplay

    mini2440移植madplay madplay交叉编译 交叉编译器:arm-linux-gcc 3.4.1 P...

  • ppp与pppoe 交叉编译移植

    ppp 与 pppoe 交叉编译移植(交叉编译链为arm-hismall-linux-)转自 https://bl...

网友评论

    本文标题:交叉编译ARM平台的OpenCV1.0

    本文链接:https://www.haomeiwen.com/subject/ilbrsxtx.html