编译第一个opencv测试程序
来源:互联网 发布:java编写仓库管理 编辑:程序博客网 时间:2024/06/07 03:21
g++ -o test1 test1.cpp -I/usr/local/include -I/usr/local/include/opencv -I/usr/local/include/opencv2 -L/usr/local/lib /usr/local/lib/*.so
未定义的引用:
没有链接到库文件,这样导致函数没有定义,可以增加编译选项。
解决步骤:
1. 查看pkg-config是否有opencv,命令:pkg-config opencv --libs
如果有,进行第2部,如果没有,那么考虑pkg重新配置,如下:
在/usr/local/lib/pkgconfig/下有opencv.pc,我里面的内容如下:
Package Information for pkg-config
# Package Information for pkg-configprefix=/usr/localexec_prefix=${prefix}libdir=includedir_old=${prefix}/include/opencvincludedir_new=${prefix}/includeName: OpenCVDescription: Open Source Computer Vision LibraryVersion: 3.0.0Libs: ${exec_prefix}/lib/libopencv_calib3d.so ${exec_prefix}/lib/libopencv_core.so ${exec_prefix}/lib/libopencv_cudaarithm.so ${exec_prefix}/lib/libopencv_cudabgsegm.so ${exec_prefix}/lib/libopencv_cudacodec.so ${exec_prefix}/lib/libopencv_cudafeatures2d.so ${exec_prefix}/lib/libopencv_cudafilters.so ${exec_prefix}/lib/libopencv_cudaimgproc.so ${exec_prefix}/lib/libopencv_cudalegacy.so ${exec_prefix}/lib/libopencv_cudaobjdetect.so ${exec_prefix}/lib/libopencv_cudaoptflow.so ${exec_prefix}/lib/libopencv_cudastereo.so ${exec_prefix}/lib/libopencv_cudawarping.so ${exec_prefix}/lib/libopencv_cudev.so ${exec_prefix}/lib/libopencv_features2d.so ${exec_prefix}/lib/libopencv_flann.so ${exec_prefix}/lib/libopencv_hal.a ${exec_prefix}/lib/libopencv_highgui.so ${exec_prefix}/lib/libopencv_imgcodecs.so ${exec_prefix}/lib/libopencv_imgproc.so ${exec_prefix}/lib/libopencv_ml.so ${exec_prefix}/lib/libopencv_objdetect.so ${exec_prefix}/lib/libopencv_photo.so ${exec_prefix}/lib/libopencv_shape.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_videoio.so ${exec_prefix}/lib/libopencv_videostab.soCflags: -I${includedir_old} -I${includedir_new}
可以按照这种格式进行重新的配置
2. 简便指令
g++ -o testrect testrect.cpp `pkg-config opencv --cflags --libs`
注意,这里是`(反斜号)而非(单引号)
如果我们不是空pkg管理器, 那么, 我们编译的时候,需要添加如下的指令(不包含大括号):
g++ -o{输出文件} {要编译文件} -I{你的OpenCV头文件的目录,可以重复指定} -L{你的OpenCV库文件的目录} {要连接的动态库,可以使用通配符}
比如: g++ -odemo.a demo.cpp -I/usr/local/include -I/usr/local/include/opencv -I/usr/local/include/opencv2 -L/usr/local/lib /usr/local/opencv/*.so
3.更近一步的优化:
如果, 在Linux使用的是Code::Blocks进行代码的书写,那么,这一步,对Code::Blocks环境进行配置。
配置环境无非是设定两个方面:
编译的时候头文件的寻找地方
我的opencv使用的是默认安装方式,其头文件位于/usr/local/include/opencv 和 /usr/local/include/opencv2下
那么, 我们只需要将这两个文件设定为编译的寻找位置,不同版本的Code::Blocks有不同的设定方式,我的设定方式则是在:
Settings>Compiler>Global Compiler Setting>Search directories>Add
弹出对话框,增加即可,当一切都搞好的时候,您会发现,并不理想,仔细看一下opencv2文件夹的内容,您自然
会发现,opencv2下有文件夹存在,所以,我们需要吧opencv2下的所有的文件夹按照上面的方式加入到Search目录。
链接的时候动态库的寻找地方
我的opencv的库文件都坐落于/usr/local/lib, 按照同样的方法添加:
Settings>Compiler>Global Compiler Setting>Link Settings>Add
因为在搜索的时候是以文件为单位进行搜索的,所以,使用痛配符来表示
/usr/local/lib/*
添加至其中即可。
- 编译第一个opencv测试程序
- 编译第一个LINUX下 OPENCV 程序
- 第一个opencv程序
- 第一个opencv程序
- opencv第一个程序
- ubuntu 14.04 opencv 3 编译第一个程序
- opencv第一个测试程序遇到的问题及解决
- 第一个测试程序
- 第一个android-opencv程序
- opencv的第一个程序
- Opencv第一个简单程序
- OpenCv创建第一个程序
- opencv的第一个程序
- Opencv学习1: 在Linux下编译运行第一个opencv程序
- 【OpenCV入门指南】第一个OpenCV程序
- 第一个CGI测试程序
- [PyQt]第一个测试程序
- 第一个内核测试程序
- HDU-1017
- 汉字转拼音(域名)
- iOS UIScrollView和 cell加载子视图偏移64问题
- 不动点
- 分数类的雏形
- 编译第一个opencv测试程序
- 斐波那契数列
- Cluster3.0 和 treeView的使用
- 静态数据成员应用
- 关于CSS外边距叠加问题
- mysql中的主要的参数
- TCP/IP(一):TCP/IP协议简单介绍
- xrandr命令解决ubuntu15.10双屏分辨率问题
- 网页监控之自己设计监控界面