您的位置:首页 > 编程语言 > Qt开发

linux QT 环境下配置编译opencv以及配置需要注意的问题。

2014-05-29 13:53 555 查看
笔者配置环境:

ubuntu:10.04

QT4.85

opencv2.44

首先下载源码。百度opencv

然后下载cmake或安装cmake-gui

在linux终端下#apt-get install cmka-gui

 先解压opencv源码

然后在命令行中#cmake-gui

会弹出一个界面

其中第一行代表opencv源码目录:

第二行代表opencv编译生成库的中间目录,也就是要进入这个目录里执行make命令



然后点击Configure按钮,保持generator为Unix Makefiles,如果是给arm、平台编译opencv库的话,选择Specify options for cross-compiling,点击Next,如果是给PC机用的话,就直接默认配置,默认、bin/g++ gcc

按照如下方式配置(ARM):



注:/usr/local/arm/4.3.2 为交叉编译工具 arm-linux-g++/gcc 的所在包含文件夹(在bin文件夹里面)

然后点击 “Finish” 按钮;

修改默认配置,默认安装目录为/usr/local,但我想对它统一归类,所以我在/usr/local/arm/4.3.2/lib目录下新建了一个opencv文件夹,在Cmake-gui里修改CMAKE_INSTALL_PREFIX变量改为/usr/local/arm/4.3.2/lib/opencv/



(另外,如果没有安装tiff图像的支持,请去掉WITH_TIFF)

如果给PC机编译库文件,想用opencv里面的图形界面函数(创建window之类),或者想让opencv的

例程运行出效果就得选上:BUILD—GTK WITH——GTK 最好再选上V4L2和V4L,对摄像头支持

其中MAKE INSTALL PREFIX 选项中的参数为最终生成的库的安装路径,也就是make install 后文件安装到了所指定目录

然后点击Generate按钮生成Makefile;

4、在终端界面中,进入目录/usr/local/opencv/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的链接选项
此时需要修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt,如下图:



重新make编译,错误消除,编译成功之后的界面如下:



5、然后运行make install,将opencv生成的库和头文件安装到目录/usr/local/lib(默认目录):

在使用时偶尔会出现,wrong file format ,也就是说文件格式错误,用file 命令检查下库文件属性,看看是8036 还是 ARM 偶尔会出现两种平台的文件混在一起了,最好重新编译一次,

在QT中,打开.pro文件。

在后面添加:

INCLUDEPATH +=你的opencv头文件目录 (默认:/usr/local/include)

LIBS +=你生成的opencv库的路径/*.so(默认:/usr/local/lib/*.so)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐