OpenCV 2.4.13 installed in Ubuntu 14 and CMakeLists Demo
1. 配置编译器环境
[compiler] sudo apt-get install build-essential
2. 安装OpenCV的依赖包
[required] sudo apt-get install cmake git libgtk2.-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394--dev
3. cmkae 外部构建
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_TIFF=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
(注意:必须加上-D BUILD_TIFF=ON,否则编译caffe的时候会有这样的错误/usr/lib/libopencv_highgui.so.2.4: undefined reference to XXXXXX)
4. 安装在主机上
make -j8
sudo make install
5. CMakeLists.txt的写法
//OpenCV 检查程序 #include <cv.h>
#include <highgui.h> using namespace cv; int main(int argc, char* argv[])
{
Mat image;
image = imread(argv[], ); if (argc != || !image.data)
{
printf("No image data\n");
return -;
} namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", image);
waitKey();
return ;
}
在同一目录下创建CMakeLists.txt,并写入编译规则
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(test)
FIND_PACKAGE(OpenCV REQUIRED)
ADD_EXECUTABLE(opencv_test main.cpp)
TARGET_LINK_LIBRARIES(opencv_tes ${OpenCV_LIBS})
之后利用CMakeLists.txt创建Makefile并完成实例构建
mkdir build
cd build
cmake ../
make
编译完成后,在build文件夹下会创建一个opencv_test的可执行文件
./opencv_test filename
运行文件,将会显示图片内容
6. 如果对makefile的规则不太熟悉,也可以直接配置gcc的编译选项
g++ main.cpp -Wl,-rpath=/usr/local/lib -I /usr/local/include/ -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -o opencv_test
7.或者安装pkg-config并配置opencv可以避免重复配置opencv
sudo apt-get install pkg-config
sudo gedit ~/.bashrc #最后一行输入
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
#执行以下命令使配置立即生效
source /etc/profile #打开文件,配置opencv lib库路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
#opencv的库一般安装在"/usr/local/lib"文件夹下,在文件内添加
/usr/local/lib #执行下列命令使之立刻生效
sudo ldconfig
g++ main.cpp -Wl,-rpath=/usr/local/lib 'pkg-config --libs opencv --cflags opencv' -o test //`不是单引号,而是数字1左边的`符号
注意,如果不添加-Wl, -rpath=/usr/local/lib, 编译是可以通过的,但是相对应的链接库并没有写入到可执行文件内,运行可执行文件时候,会遇到 ./test: error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory的错误,虽然添加上了-I和-L和以保证编译成功,但是可执行文件仍然找不到需要连接的动态库。
OpenCV 2.4.13 installed in Ubuntu 14 and CMakeLists Demo的更多相关文章
- 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
分类: Android 系统开发(5) 作者同类文章X 版权声明:本文为博主原创文章 ...
- NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)
转自:http://blog.csdn.net/enjoyyl/article/details/47397505?from=timeline&isappinstalled=0#10006-we ...
- ubuntu 16.04 安装opencv 2.4.13
ubuntu 16.04 安装opencv 2.4.13 https://blog.csdn.net/u011557212/article/details/54706966?utm_source=it ...
- 30分钟groovy快速入门并掌握(ubuntu 14.04+IntelliJ 13)
本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员.了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合.内置正则表达式和闭包. ...
- Ubuntu 14.04 下安装 OpenCV
参考: Installation in Linux Error compiling OpenCV, fatal error: stdlib.h: No such file or directory 图 ...
- Ubuntu 14 中 VirtualBox发生错误Kernel driver not installed (rc=-1908)
宿主系统是Ubuntu 14,在VirtualBox中安装 CentOS 6.5 时,提示如下错误: Kernel driver not installed (rc=-1908) 网友提供的解决方案: ...
- [2014.5.13][Ubuntu] Ubuntu 14.04STL 出现NTFS分区无法訪问的问题
5.12 为了给学生改论文,在UPC上登录了Windows 8.1,晚上正常关机.今日切换登陆Ubuntu 14.04分区,发现原来能够正常訪问的windows下的NTFS分区都被锁死.提演示样例如以 ...
- Ubuntu 14.04上安装caffe
本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...
- ubuntu 14.04 nagios4+ndoutils2.0+centreon2.5.4配置
ubuntu 14.04 nagios4+ndoutils2.0+centreon2.5.4(原创) 开发应用centreon是开源的IT监控软件,由法国人于2003年开发,最初名为Oreon,并于2 ...
随机推荐
- linux C使用strerror来追查错误信息
最近工作中有个需求:程序将文件进行处理,然后将处理完毕的文件挪走.我用了rename函数来挪动文件,可是在docker化的环境中,文件却无法挪动.不知道什么原因.现在,对程序进行调整,如果rename ...
- 《DSP using MATLAB》示例Example7.18
代码: M = 33; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; T1 = 0.1095; T2 = 0.598; Hrs = [zeros(1,11) ...
- 监听Documents文件夹内文件发生改变
// 当Documents内文件发生改变时,启动计时器,每秒计算一次大小,当大小不发生改变时说明传输完毕,就开始刷新. @property (nonatomic, strong) NSTimer *t ...
- elasticsearch 动态模板
在elasticsearch中,如果你有一类相似的数据字段,想要统一设置其映射,就可以用到一项功能:动态模板映射(dynamic_templates). 每个模板都有一个名字用于描述这个模板的用途,一 ...
- 7天学会HTML-Day01
HTML初步 关键词: B/S C/S .服务器访问原理.标签.html特性.列表.图片 1.B/S 和C/S 架构 B/S -> browser/server 浏览器服务器架构 C/S -&g ...
- 解决 Flask-sqlalchemy 中文乱码
当在使用 flask-sqlalchemy 操作 mysql 数据库时中文乱码或者直接报错. 解决方法如下: from flask_sqlalchemy import SQLAlchemy db = ...
- (转)android - anim translate中 fromXDelta、toXDelta、fromYDelta、toXDelta属性
2012-03-23 15:51 16144人阅读 评论(5) 收藏 举报 android <set xmlns:android="http://schemas.android.com ...
- gitlab的本地搭建和部署使用
公司现在的代码管理是在公司的服务器上部署了gitlab,这样既方便协同开发,有可以很好的保护代码的安全性. 那么我们就来研究一下 如何给自己的服务器上部署gitlab吧! 学习源头:https://w ...
- 25 mysql怎么保证高可用
上一篇介绍了binlog的基本内容,在主备关系中,是每个备库接收主库的binlog并执行. 正常情况下,只要主库执行更新生成的所有的binlog,都可以传到备库并被正确执行,备库就能跟主库一致的状态, ...
- gevent异步,io自动切换
#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/19 # # from gevent import monkey # 这俩行必须放在首 ...