当前位置: 首页 > news >正文

交叉编译ARM平台的OpenCV1.0

首先,从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 see http://www.freedesktop.org/software/pkgconfig to 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 "*** See http://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-swig  CXX=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 开发板的移植及其应用》(华东师范大学电子系嵌入式竞赛组)

http://www.lryc.cn/news/427124.html

相关文章:

  • 牛客周赛 Round 56 AK
  • LeetCode 热题 HOT 100 (038/100)【宇宙最简单版】
  • SQLALchemy ORM 的关联关系之 ORM 中的一对一
  • 模型部署 - docker
  • 学懂C++(三十四):深入详解 C++ 高级多线程编程技术中的并发设计模式
  • 大数据产业链图谱_产业链全景图_大数据行业市场分析
  • photonserver 部署相关教程
  • GEE训练:sentinel-1数据的投影、显示和导出
  • 后端学习笔记(七)--MyBatis参数传递
  • uniapp 网络请求自动处理loading
  • 【Solidity】函数的使用
  • 详解golang内存管理
  • C++ 线程 一些同步方式
  • 【开发语言】编译型语言和解释性语言有啥区别?
  • 将A服务器上指定文件夹中的文件,批量同步到B服务器上
  • 2024.8.17
  • 十分钟搭建一个RTMP服务器
  • Spring Boot解决循环注入问题
  • 《数据挖掘》期末考核重点
  • Golang | Leetcode Golang题解之第334题递增的三元子序列
  • HarmonyOs编写一个案例实现一个照片选择(阶段进阶 四种需求 逐一完善)
  • 洗衣机洗衣服一些知识
  • 探索文件系统:高效、可靠的文件管理与访问机制
  • 启程与远征Ⅸ--优化生成式人工智能以满足业务需求的框架
  • canal数据同步工具介绍与应用
  • ubuntu18.04 设置静态地址
  • jira敏捷开发管理工具视频教程Confluence工作流协同开发(2024)
  • 【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
  • Python知识点:如何使用Boto3进行AWS服务管理
  • Java - 正则表达式