




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
linux +qt4.7+opencv2.2 移植到 tq2440 开发板 以下操作在 Fedora 下使用超级用户进行 我已经安装了交叉编译器 arm-linux-gcc 4.3.3 和 qt4.5 的 x86 和 arm 版本 在目录/opt/EmbedSky 下。 修改配置文件/etc/profile 添加 pathmunge /opt/EmbedSky/4.3.3/bin 安装 CMake OpenCV 2.1 的版本,必须使用 CMake 创建 Makefile。我使用的 CMake 版本是 2.6-Linux-i386 的,是 fedora 通过软件添加和载卸功能添加的( 这个 cmake 要重新安装,而且要添加 bin 进去路径) 编译 OpenCV: 1、解压 OpenCV 2.1 到/opt/EmbedSky/OpenCV-2.1.0 目录下 2、在超级用户下,运行 cmake-gui 命令 选择源代码目录:/opt/EmbedSky/OpenCV-2.1.0 选择 Build 目录:/home/pww71/opencv-arm/ 点击 Configure,保持 generator 为 Unix Makefiles,选择 Specify options for cross-compiling,点击 Next Operating System 填写 arm-inux C Compilers 选择/opt/EmbedSky/4.3.3/bin/arm-linux-gcc C+ Compilers 选择/opt/EmbedSky/4.3.3/bin/arm-linux-g+ 程序库的 Target Root 填写/opt/EmbedSky/4.3.3/ ,然后点击 Finish 修改默认配置, X86opencv 的 cmake 配置 添加 BUILD_EXAMPLES 和 OPENCV_BUILD_3RDPARTY_LIBS 前面 的日志已经介绍过了 arm-opencv 的 cmake 配置 不要加 BUILD_EXAMPLES 和 OPENCV_BUILD_3RDPARTY_LIBS 和 去 掉 WITH_TIFF CMAKE_EXE_LINKER_FLAGS 原来为空,加上-lpthread -lrt x86 的 opencv 默认安装目录为/usr/local,对于 arm 的交叉编译的库来说并不合适,所以把 CMAKE_INSTALL_PREFIX 变量改为/usr/local/arm/lib/opencv/ 没有安装 tiff 图像的支持,去掉 WITH_TIFF 点击 Generate 生成 Makefile 3、使用超级用户 进入目录/home/pww71/opencv-arm,运行 make 编译 opencv 4、运行 make install,将 opencv 生成的库和头文件安装到目录/usr/local/arm/lib/opencv/ QT 的配置 已经解压和安装了 qt4.5 的 x86 的库和 arm 交叉交叉编译的库 安装 qtcreator 时 记得安装地址 并且修改配置文件/etc/profile 添加上 qtcreator 的安装地址的 bin 目录 我的是 pathmunge pathmunge /opt/EmbedSky/qtcreator-1.3.0/bin 为了能找到 qmake 还要添加路径 pathmunge /opt/EmbedSky/qt-4.5/_install/x86/bin pathmunge /opt/EmbedSky/qt-4.5/_install/am/bin 到配置文件/etc/profile 中 使用超级用户 输入命令 source /etc/profile 后 再执行 qtcreator 命令 打开 Qtcreator 界面 进入 Tools-Options 左侧选择 QT4-Qt Versions 右侧选项里:如果通过软件添加和载卸工具添加了 qt4 的 话 Auto-detected 会自动的选择 Qt in PATH /usr/local/bin/qmake-qt4 用这个 qmake 工具生成的可执行 文件不用添加-qws 命令行参数 自己安装的 qt4.5 我是如下配置 Qt in PATH /opt/EmbedSky/qt-4.5/_install/arm/bin/qmake 添加 Manual x86-qt-4.5.0 /opt/EmbedSky/qt-4.5/_install/x86/bin/qmake 生成的可执行文件需要添加-qws 命令行参数 分别点击 rebuild 最后点击 ok Build Settings 中根据需要 Add 刚才配置的选择 BUild configuration for . 也选择相应的选项 在 QT 工程文件.Pro 中添加以下内容 INCLUDEPATH += /usr/local/include/opencv LIBS += /usr/local/lib/libcv.so /usr/local/lib/libcvaux.so /usr/local/lib/libcxcore.so /usr/local/lib/libhighgui.so /usr/local/lib/libml.so pc 仿真必须将以上库还要添加到项目文件夹里 如果是 arm 开发板的程序则添加以下内容 INCLUDEPATH += /usr/local/arm/lib/opencv/include/opencv LIBS += /usr/local/arm/lib/opencv/lib/libcv.so /usr/local/arm/lib/opencv/lib/libcvaux.so /usr/local/arm/lib/opencv/lib/libcxcore.so /usr/local/arm/lib/opencv/lib/libhighgui.so /usr/local/arm/lib/opencv/lib/libml.so 编译生成可执行文件 移植到开发板 提示缺少什么库就按提示添加相应的图像库到 lib 中 以及 qt4.5 的库 和字体都添加到相应的目录中 中间有一个这个提示 QWSDisplay:Data:init: Invalid argument Client cant attach to main ram memory. Aborted 这个是表示缺少命令行参数-qws 是 Qt4 的问题 运行命令添加该参数 ok 一切正常 注意的是 qtcreator。bin 不能用于 pc 的编程 总是提示找不到 opencv 图像库 系统自带的 qt 适合 pc 编程 如果提示无法保存文件 可以用系统管理登录 chmod 文件属性 自己安装的 qt 只能用于 arm 的交叉编译 在安装 qt4.7 的过程中 又发现 pc 版本总是提示找不到 opencv 图像库 后来卸载了 qt4.5 和 qt3,来回重 装 qt4.7 又可以了 然后马上保存的系统。 *pc 编程如果带 opencv 库 会提示找不到库文件。 pc 的编译器换成交叉编译时 先运行 qmake 生成 make 文件 直接运行 rebuilt 不行 会提示 opencv 的库 文件格式错误。 Qt creator 添加 qmake rebuild 出错 日期:2011-04-23 来源:Linux 社区 作者:c05170519 在 Qt creatertoolsQptiosQt4Qt Versions 中添加 qmake(qt embeddedd 版的) ,然后 Rebuild Degugging helper 的时候(就是把那个红 x 变成绿勾)的时候出现下面的错误: Building debugging helper library in /QT/qte-4.5.0/qtc-debugging-helper/ Running /usr/bin/make distclean. rm -f gdbmacros.o rm -f * core *.core rm -f libgdbmacros.so.1.0.0 rm -f libgdbmacros.so libgdbmacros.so.1 libgdbmacros.so.1.0 libgdbmacros.a rm -f Makefile Running /QT/qte-4.5.0/bin/qmake . Cannot find file: . Running /usr/bin/make . arm-linux-g+ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DUSE_QT_GUI=1 -DQT_GUI_LIB - DQT_CORE_LIB -DQT_SHARED -I/mkspecs/qws/linux-arm-g+ -I. -I/include/QtCore - I/include/QtGui -I/include -I. -I. -o gdbmacros.o gdbmacros.cpp make: arm-linux-g+ make: * gdbmacros.o 127 最后两行还是乱码,百度 google 无解。 具体怎么找出毛病的忘了,只记得好像上面把 qmake 添加进环境变量时,如果写进 /etc/bash.bashrc,auto-detect 是找不到它的,于是对/etc/profle 和/etc/bash.bashrc 这两个文件产生好奇, 一问老师才知道,前者是全局的,对整个系统都有作用的,而后者只对终端起作用,而我的 qmake 虽然 写的是/etc/profile ,但是交叉编译器却写进 /etc/bash,bashrc(图省事,修改 profile 要重启电脑,后者只 要 source 以下就可以了),rebuild 时需要调用相关的交叉编译器,写在/etc/bash,bashrc 的话编译器就 找不到了,所以会出错。 网上也找到一位东大读博哥么的博客,他是在相关 qmake.conf 做了修改,在交叉编译器前面加上准确的 地址,似乎也能通过,但是包含交叉编译器的 qmake.conf 有很多同名文件,他修改可能是“正确的”一个, 但是其他的都没动,谁知道以后会出什么错呢? 解决方法: 把交叉编译器写进/etc/profile,而不是/etc/bash.bash.rc 配置 qtcreator 的 ARM 编译环境 下载 arm920t-eabi.tar.gz(arm-linux-gcc 4.1.2),解压到/opt/arm/4.1.2/ 目录 下 打开 qtcreator 的 Options 选项,选择 QT4选项,添加一个编译环境, Version name 填 Qte4.6.3 (这个可以随便填) ,qmake location 填 /opt/qte/bin/qmake(我先前已经编译了 QT4.6.3 embeded,并安装在 /opt/qte/目录下,自己相应修改) ,点 Rebuild,应该会出错。 打开命令行,输入 sudo ln -s /opt/arm/4.1.2/bin/arm-linux-g+ /usr/bin/ ,为 arm-linux-g+建立符号链接,因为 qtcreator 貌似只认/usr/bin/ 目录下的, PATH 里面无效。 到这一步已经快好了,但是点 Rebuild 还是会出错,错误的原因是什么 #include 什么的,这是因为 arm-linux-g+找不到头文件。首先,我是 按照别人说的在.bashrc 里面加入了环境变量:export CPLUS_INCLUDE_PATH=/opt/arm/4.1.2/arm-angstrom-linux- gnueabi/include/c+:/opt/arm/4.1.2/arm-angstrom-linux- gnueabi/include/c+/arm-angstrom-linux-gnueabi ,然后重新打开 qtcreator, 点 Rebuild,不行,还是出错。但是在/qte/example/widgets/calculator/目录 下,执行/opt/qte/qmake 然后 make,已经没有问题了。 所以得出结论是, GDM 在打开 Gnome 的时候不会执行 .bashrc 文件。我需要找一个 GDM 会执 行的文件放 export。google 的半天,说/etc/gdm/Xsession 文件会被执行。但 是我看了看这个文件,发现和网上说的不一样,我的是 Archlinux。我这个貌 似 XDM 才会执行。又 google+乱看了半天,终于被我发现 /etc/X11/xinit/xinitrc.d/目录下的都会被执行,于是写了一个 cplus_include_path 的 bash 文件,在里面 export 了 CPLUS_INCLUDE_PATH 这 个环境变量。注销重新登陆,打开 qtcreator,然后 Rebuild,OK ,succeed 了。开心。 一不小心手贱点了 QT IN PATH 的 Rebuild,fuck 了,又出错了。而且出错 信息显示,Linux 上的 QT 也用了 arm-linux-g+在编译,这当然要出错了。到 命令行,unset 了 CPLUS_INCLUDE_PATH,又到 calculator 目录下,用本机的 qmake,make,没有错误。总结下,就是 CPLUS_INCLUDE_PATH 是所有的 g+都会使用的一个环境变量。把 export CPLUS_INCLUDE_PATH=/opt/arm/4.1.2/arm-angstrom-linux- gnueabi/include/c+:/opt/arm/4.1.2/arm-angstrom-linux- gnueabi/include/c+/arm-angstrom-linux-gnueabi 改成了 export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/arm/4.1.2/arm- angstrom-linux-gnueabi/include/c+:/opt/arm/4.1.2/arm-angstrom-linux- gnueabi/include/c+/arm-angstrom-linux-gnueabi,注销,测试,还是出错。 export|grep CPLUS,发现 CPLUS_INCLUDE_PATH 这个环境变量与来是没有的, 悲剧。此方法不通。又不断的尝试。我在想能不能把每个不同版本的 g+的 include path 都独立开来。沿着这个方向,我找到了 specs,看了老半天,这 个也不方便,要用自定义的覆盖默认的 specs,没有配置文件可以修改。后 来找到了 qmake 的配置文件去了,发现 qmake.conf 可以自定义 g+ gcc 的 参数,兴奋啊。找到了这个网页 /4.5/qmake-variable- reference.html#qmakespec 从头到尾大概的读了便,QMAKE_CXXFLAGS 看 上去比较靠谱,于是编辑/opt/qte/mkspecs/linux-g+/qmake.conf,里面貌似 没有提到这个变量,但是文件里面 include 了几个文件。一一打开这几个文 件,最后在/opt/qte/mkspecs/common/g+.conf 里发现了这个变量。原来的 是 QMAKE_CXXFLAGS += $QMAKE_CFLAGS,我增加了一行 QMAKE_CXXFLAGS += -I/opt/arm/4.1.2/arm-angstrom-linux- gnueabi/include/c+ -I/opt/arm/4.1.2/arm-angstrom-linux- gnueabi/include/c+/arm-angstrom-linux-gnueabi,然后把 /etc/X11/xinit/xinitrc.d/cplus_include_path 删除,重新登陆,打开 qtcreator, 先对 QT IN PATH 进行 Rebuild,OK,没有错误,然后对 Qte 4.6.3 进行 Rebuild,wonderful ,也没有错误。终于把这个问题解决了。 看似很简单的一个问题,牵扯太多了,问题终于解决,真不容易啊。 特此记载。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 opencv2.2 支持 qt 移植时选择 cmake 界面 选择 with-qt 和 with-qt-opengl 另外 qt-qmake-executable 要选择 4.6 以上的 qt 版本的 qmake Qt4.7 的配置命令: ./configure -embedded arm -release -opensource -silent -qt-libpng -qt-libjpeg -qt-libmng -qt-libtiff -no- multimedia -make libs -nomake tools -nomake examples -nomake docs -nomake demos -rpath -qt-kbd- linuxinput -qt-mouse-tslib -xplatform qws/linux-arm-g+ -little-endian -qt-freetype -depths 16,18 -qt-gfx- linuxfb -no-qt3support -no-nis -no-cups -no-iconv -no-dbus -no-openssl -no-fast -no-accessibility -no- scripttools -no-mmx -no-multimedia -no-svg -no-webkit -no-3dnow -no-sse -no-sse2 -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -no-glib -prefix /opt/EmbedSky/qt-4.7-arm -I /opt/EmbedSky/tslib_install/include -L /opt/EmbedSky/tslib_install/lib libpng.so ,libz.so 和 librt.so 使用交叉编译器路径下的本人是 4.33 的 /4.33/arm-none-linux- gnueabi/libc/armv4t/usr/lib/目录 提示错误: OpenCV-2.2.0/modules/ml/src/gbt.cpp:474: error: expl was not declared in this scope 修改如下 #include “precomp.hpp“ #include #include using namespace std; #define pCvSeq CvSeq* #define pCvDTreeNode CvDTreeNode* #define CV_CMP_FLOAT(a,b) (a) /etc/ld.so.conf.d/opencv.conf 设置 pkg-config echo export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2.2/lib/pkgconfig /root/.bashrc source /root/.bashrc 编译 android 下的 opencv 库: /wiki/Android arm-2009q3 交叉编译 opencv2.0.0 操作步骤: cd /projects/Opencv2.0.0 ./configure -host=arm-none-linux-gnueabi -without-gtk -without-carbon -without-quicktime -without- 1394libs -without-ffmpeg -without-python -without-swig -without-v4l -enable-shared -disable-apps CXX=arm-none-linux-gnueabi-g+ CPPFLAGS=-I/usr/include -prefix=/usr/local/opencv_arm make make install 编译 OpenCV for arm-linux (转) 2011-03-09 17:25 重要 OpenCV 是 Intel 支持的开源计算机视觉库。它由一系列 C 函数和少量 C+类构成,实现了图像处理和计算 机视觉方面的很多通用算法。它不依赖于其它的外部库尽管也可以使用某些外部库。 OpenCV 使用 BSD License,对非商业应用和商业应用都可以免费使用。 OpenCV 的主要应用环境是 Windows 和 Linux,对于嵌入式系统如 arm-linux,很少有资料提到,因此将我在 arm-linux 编译过程记录下来和大家分享。 预备工作: a. 安装交叉编译链 我使用的是 arm-linux-gcc 4.3.2,解压到目录/usr/local/arm/4.3.2,然后在环境变量 PATH 中增加 /usr/local/arm/4.3.2/bin b. 安装 CMake OpenCV 2.0 之后的版本,必须使用 CMake 创建 Makefile。我使用的 CMake 版本是 2.8.2,解压到目录 /usr/local/cmake-2.8.2-Linux-i386,然后在环境变量 PATH 中增加/usr/local/cmake-2.8.2-Linux-i386/bin 编译 OpenCV: 1、解压 OpenCV 2.1 到/usr/local/OpenCV-2.1.0 目录下 2、创建/usr/local/opencv-arm/目录,作为 CMake 编译 arm 版本的工作目录 3、在 X 环境下,运行 cmake-gui 选择源代码目录:/usr/local/OpenCV-2.1.0 选择 Build 目录:/usr/local/opencv-arm/ 点击 Configure,保持 generator 为 Unix Makefiles,选择 Specify options for cross-compiling,点击 Next Operating System 填写 arm-inux C Compilers 填写/usr/local/arm/4.3.2/bin/arm-linux-gcc C+ Compilers 填写/usr/local/arm/4.3.2/bin/arm-linux-g+ 程序库的 Target Root 填写/usr/local/arm/4.3.2/,然后点击 Finish 修改默认配置,默认安装目录为/usr/local ,对于交叉编译的库来说并不合适,所以我把 CMAKE_INSTALL_PREFIX 变量改为/usr/local/arm/lib/opencv/ 另外,我没有安装 tiff 图像的支持,因此去掉 WITH_TIFF 点击 Generate 生成 Makefile 4、在终端界面中,进入目录/usr/local/opencv-arm,运行 make 编译 opencv 编译时发现如下错误: Linking CXX executable /bin/opencv_createsamples /lib/libcxcore.so: undefined reference to clock_gettime /lib/libcxcore.so: undefined reference to pthread_key_create /lib/libcxcore.so: undefined reference to pthread_getspecific /lib/libcxcore.so: undefined reference to pthread_setspecific 原因是 cmake 不认识我定义的 arm-linux 系统标记,没有加上库 pthread 和 rt 的链接选项 5、修改 CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS 原来为空,加上-lpthread -lrt,重新编译,错误消除 6、运行 make install,将 opencv 生成的库和头文件安装到目录 /usr/local/arm/lib/opencv/ 测试 OpenCV 库 1、首先确认一下库是否已编译正确及其安装位置 查看头文件: rootlocalhost opencv-arm# ls /usr/local/arm/lib/opencv/include/opencv/ cvaux.h cvcompat.h cv.hpp cvtypes.h cvvidsurv.hpp cxcore.h cxerror.h cxmat.hpp cxoperations.hpp highgui.h ml.h cvaux.hpp cv.h cvinternal.h cvver.h cvwimage.h cxcore.hpp cxflann.h cxmisc.h cxtypes.h highgui.hpp rootlocalhost opencv-arm# ls /usr/local/arm/lib/opencv/include/opencv/ cvaux.h cvcompat.h cv.hpp cvtypes.h cvvidsurv.hpp cxcore.h cxerror.h cxmat.hpp cxoperations.hpp highgui.h ml.h cvaux.hpp cv.h cvinternal.h cvver.h cvwimage.h cxcore.hpp cxflann.h cxmisc.h cxtypes.h highgui.hpp 查看库文件: rootlocalhost opencv-arm# ls /usr/local/arm/lib/opencv/lib libcv.a libcvaux.a libcvaux.so libcv.so libcxcore.a libcxcore.so libhighgui.a libhighgui.so libml.a libml.so rootlocalhost opencv-arm# ls /usr/local/arm/lib/opencv/lib libcv.a libcvaux.a libcvaux.so libcv.so libcxcore.a libcxcore.so libhighgui.a libhighgui.so libml.a libml.so 2、写个简单的测试程序,打开摄像头并创建一个窗口显示 / test.cpp #include #include #include int main() CvCapture* capture = NULL; IplImage* frame = NULL; if( !(capture = cvCaptureFromCAM(-1) fprintf(stderr, “Can not open camera.n“); return -1; cvNamedWindow(“video“, 1); while(frame = cvQueryFrame( capture ) ) cvShowImage(“video“, frame); cvDestroyWindow(“video“); cvReleaseCapture( return 0; / test.cpp #include #include #include 3、编译链接测试程序 arm-linux-g+ -I/usr/local/arm/lib/opencv/include/opencv/ -L/usr/local/arm/lib/opencv/lib/ -lcv -lcxcore -lhighgui -lpthread -lrt -o test test.cpp 4、复制程序到嵌入式系统中运行 首先复制主机/usr/local/arm/lib/opencv/lib/下面的几个.so 文件到嵌入式 Linux 系统的/lib/ 目录下,再复制我 们编译的 test 到嵌入式系统/opt/myworks/目录下(并确保文件 test 属性为可执行) ,如果 test 可正常运行 没有报告缺少库文件,说明我们编译的 arm-linux 版 OpenCV 库已经可以正常使用。 shell 的初始化文件:/etc/profile 和/etc /bashrc(bash.bashrc) 上一篇 / 下一篇 2011-02-24 14:53:18 / 个人分类:Shell 查看( 13 ) / 评论( 0 ) / 评分( 0 / 0 ) bash 的几个初始化文件 - Ubuntu (1)/etc/profile 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。 (2)/ect/bashrc Ubuntu 没有此文件,与之对应的是/ect/bash.bashrc 它也是全局(公有)的 bash 执行时,不管是何种方式,都会读取此文件。 (3)/.profile 若 bash 是以 login 方式执行时,读取/.bash_profile,若它不存在,则读取/.bash_login,若前两者不存在, 读取/.profile。 另外,图形模式登录时,此文件将被读取,即使存在/.bash_profile 和/.bash_login 。 (4)/.bash_login 若 bash 是以 login 方式执行时,读取/.bash_profile,若它不存在,则读取/.bash_login,若前两者不存在, 读取/.profile。 (5)/.bash_profile Unbutu 默认没有此文件,可新建。 只有 bash 是以 login 形式执行时,才会读取此文件。通常该配置文件还会配置成去读取/.bashrc。 (6)/.bashrc 当 bash 是以 non-login 形式执行时,读取此文件。若是以 login 形式执行,则不会读取此文件。 (7)/.bash_logout 注销时,且是 longin 形式,此文件才会读取。也就是说,在文本模式注销时,此文件会被读取,图形模式 注销时,此文件不会被读取。 下面是在本机的几个例子: 1. 图形模式登录时,顺序读取:/etc/profile 和/.profile 2. 图形模式登录后,打开终端时,顺序读取: /etc/bash.bashrc 和/.bashrc 3. 文本模式登录时,顺序读取:/etc/bash.bashrc,/etc/profile 和/.bash_profile 4. 从其它用户 su 到该用户,则分两种情况: (1)如果带-l 参数(或 -参数,-login 参数) ,如:su -l username,则 bash 是 lonin 的,它将顺序读取以下 配置文件:/etc/bash.bashrc,/etc/profile 和/.bash_profile。 (2)如果没有带-l 参数,则 bash 是 non-login 的,它将顺序读取:/etc/bash.bashrc 和/.bashrc 5. 注销时,或退出 su 登录的用户,如果是 longin 方式,那么 bash 会读取:/.bash_logout 6. 执行自定义的 shell 文件时,若使用 “bash -l a.sh”的方式,则 bash 会读取行:/etc/profile 和 /.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(这个不属于 bash shell) ,则不会读取 上面的任何文件。 7. 上面的例子凡是读取到/.bash_profile 的,若该文件不存在,则读取/.bash_login,若前两者不存在, 读取/.profile。 OpenCV2.1在 Linux 下的安装 (以 Ubuntu 为例) (2010-11-03 17:34:29)转载 标签: 编 译时间 编译程序 分类: OpenCV 1、下载 OpenCV2.1的源代码:从 /projects/opencvlibrary 下载 OpenCV 源码,这里假设它的文件名为 OpenCV-2.1.0.tar.bz2,然后解压: tar jvxf OpenCV-2.1.0.tar.bz2 C / 执行命令后把代码解压到“home/用户名”目录下,目录名为:OpenCV-2.1.0 2、下载 Cmake 并安装。在 Cmake 的官方网站 /下载 Linux 下的版本, 建议用已经编译好的版本,以节省编译时间,这里以 cmake-2.8.2-Linux-i386.tar.gz 为 例。解压: tar zxvf cmake-2.8.2-Linux-i386.tar.gz C / 执行命令后把代码解压到“home/用户名”目录下,目录名为:cmake-2.8.2-Linux-i386, 执行文件就放在 bin 目录下 3、安装必要的依赖包。为了实现 OpenCV 的摄像头捕捉功能和多文件格式支持,需要安装 一些必要的工具。在 Ubuntu 下的安装过程如下: sudo apt-get install libavformat-dev libswscale-dev sudo apt-get install libgtk2.0-dev 4、用 Cmake 生成 Makefile。在“home/用户名”目录下建立一个目录“opencv_build” 。 进入 cmake-2.8.2-Linux-i386bin 目录,运行: ./cmake-gui 然后选择源代码目目录:OpenCV-2.1.0和存放生产文件的目录 opencv_build,点 Configure,然后点 Generate 5、编译源代码。进入目录 opencv_build,输入: make 经历一段时间编译完成后,再运行 sudo make install 安装 OpenCV 到 usr/local 中 6、添加环境变量 PKG_CONFIG_PATH: export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/tiger/opencv_build/unix-install 当输入:pkg-config -cflags opencv 出现如下提示: tigerubuntu:/opencv_build$ pkg-config -cflags opencv -I/usr/local/include/opencv 当输入:pkg-config -libs opencv 出现如下提示: tigerubuntu:/opencv_build$ pkg-config -libs opencv -L/usr/local/lib -lml -lcvaux -lhighgui -lcv -lcxcore 这样就安装好了 7、测试 进入 OpenCV-2.1.0下的 samplesc 目录,利用下面的命令编译程序,这假设 opencv- prgm.c 为代码 gcc pkg-config -cflags -libs opencv -o my-opencv-prgm my-opencv-prgm.c 编译后用 ./ my-opencv-prgm 测试。 OpenCV 2.2 CrossCompilation for ARM fixes Reported by: hyblade Owned by: Priority: major Component: build/install problems Version: 2.2 Keywords: ARM, g+, CodeSourcery, OMAP Cc: Description Hello there, A few days ago we tried to compile the newest OpenCV release (2.2) for our OMAP cpu using the CodeSourcery? g+ compiler. There are, again, a few issues that need to be solved in order to guarantee compilation of OpenCV without any troubles. First of all, the number of “errors” has been greatly diminished since the last few releases. Its quite nice to see, that our comments are regarded useful by you folks! Since were not completely through with the cross compilation for the ARM processor using our g+ CodeSourcery? compiler the following fixes arent complete. Since we arent using a unix- or windows-like system, most of the errors seem to come from platform dependencies. 1. /include/opencv2/core/internal.hpp #include can not be found: we had to remove this line since this header could not be found. The removal had no effect it seems that this header isnt needed at all. 2. define of expl is missing in /modules/ml/src/gbt.cpp at line 14-16 we had to remove the #if ANDROID flag in order to use #define expl(x) exp(x). 3. /modules/core/src/rand.cpp: issues with pthread This was actual already a problem in previous version of OpenCV, but we did never commit the “bug”. From line 634-668 we had to remove the functionality since this wont work on our system. We inserted a new define NO_OS that switches between implementations. / CODE / #ifdef NO_OS RNG / runtime stop if this one is really used! psa RNG* rng = NULL; return *rng; #else static pthread_key_t tlsRNGKey = 0; static void deleteRNG(void* data) delete (RNG*)data; RNG CV_Assert(errcode = 0); RNG* rng = (RNG*)pth
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工程经济经济指标试题及答案
- 2025年经济法考试准备试题及答案
- 行政管理学与技术结合试题及答案
- 行政管理学面临挑战试题及答案
- 工程管理考试复习试题及答案
- 工程经济中的财务分析试题及答案
- 通讯火灾应急预案(3篇)
- 城镇老旧供水管网更新改造工程项目规划设计方案
- 行政管理学政策建议方案试题及答案
- 2025年智慧物流园区资金申请项目可持续发展与生态环境保护报告
- 2024年成都市城市管理委员会所属事业单位招聘真题
- 警犬培训授课课件
- 2025年四川绵阳交通发展集团有限责任公司招聘笔试参考题库附带答案详解
- 成本控制在质量管理中的策略试题及答案
- 人工智能在药物研发中的辅助作用与潜力
- 作风建设学习教育查摆问题清单及整改措施
- 2025届河北省石家庄第一中学高三下学期二模地理试题及答案
- 2024年山东开放大学招聘考试真题
- PSP问题解决流程分析
- 生活生命安全试题及答案
- 语文-华大新高考联盟2025届高三3月教学质量测评试题+答案
评论
0/150
提交评论