opencv+ linux + cmake 生成 opencv静态库
您可以省去如下步骤,直接下载我编译好的:
http://download.csdn.net/detail/u011258240/9710331
一、编译opencv2.4 不带contrib
1. 下载opencv源码
2. 将opencv 源码放在linux 的一个文件夹下(记得不要放在共享文件夹下,不然会出现软链接的错误)
3. opencv目录下新建文件夹 release ( 注:如果是3.3版本,还要删除这两个文件,很关键 rm -rf CMakeCache.txt CMakeFiles, 如果cmake版本低还要更新cmake版本 :https://launchpad.net/ubuntu/+source/cmake/3.9.1-1)
4.新建opencv的安装文件夹,例如mkdir /opencv1
5. cd release
cmake ../ \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/opencv3.3 \
-DWITH_TBB=1 \
-DWITH_PNG=1 \
-DWITH_TIFF=1 \
-DWITH_JPEG=1 \
-DWITH_JASPER=1 \
-DBUILD_SHARED_LIBS=0 \
-D INSTALL_C_EXAMPLE=OFF \
-D INSTALL_PYTHON_EXAMPLE=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \
-D BUILD_EXAMPLES=ON ..
cmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/opencv3.3 -DWITH_TBB=1 -DWITH_PNG=1 -DWITH_TIFF=1 -DWITH_JPEG=1 -DWITH_JASPER=1 -DBUILD_SHARED_LIBS=0
6. make
7, make install
然后查看文件夹opencv1,显示生成了静态库
root@lyj:/opencv1# ls lib
libopencv_calib3d.a libopencv_flann.a libopencv_legacy.a libopencv_ocl.a libopencv_ts.a
libopencv_contrib.a libopencv_gpu.a libopencv_ml.a libopencv_photo.a libopencv_video.a
libopencv_core.a libopencv_highgui.a libopencv_nonfree.a libopencv_stitching.a libopencv_videostab.a
libopencv_features2d.a libopencv_imgproc.a libopencv_objdetect.a libopencv_superres.a pkgconfig
8. 特别注意:opencv 编译的静态库并不包含libpng.a libjpeg 等库,这些库也要自己编译。
9. 静态库的使用:记得一定要包含如下库,不然使用可能会出问题
-llibjasper
-llibjpeg \
-llibpng \
-lIlmImf \
-llibtiff \
-ldl \
-lz \
二、 编译opencv3.3 + contrib 静态库
cd opencv-3.3.0
mkdir build
cd build
cmake ../ \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/opencv3.3 \
-DBUILD_SHARED_LIBS=0 \
-DINSTALL_C_EXAMPLE=OFF \
-DINSTALL_PYTHON_EXAMPLE=OFF \
-DENABLE_SSE=ON \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.3.0/modules \
-DBUILD_EXAMPLES=OFF
opencv+ linux + cmake 生成 opencv静态库的更多相关文章
- CMAKE 生成VS2008静态库工程 与 CMAKE使用,CMakeLists.txt编写总结
cmake -G"Visual Studio 9 2008 Win64" 以上命令得用cd命令切换到顶层CMakeLists.txt的当前目录,才能生效 以下是CMakeLists ...
- 学习 opencv---(6)玩转opencv源代码:生成opencv 工程解决方案与opencv 源码编译
在这篇中,我们探讨如何通过已安装的opencv选择不同的编译器类型,生成高度还原的OpenCV开发时的解决方案工程文件,欣赏OpenCV新版本中总计 六十六多万行的精妙源代码.我们可以对其源代码进行再 ...
- linux中C的静态库和动态库分析
从开始学C语言写第一个"hello world"历程到现在,我依然困惑于到底这个程序完整的执行流程是什么样的.不过,现在我正在尝试一点一点的揭开它的面纱.现在,我尝试分析linux ...
- linux系统环境下的静态库和动态库的制作
linux系统下的应用编程需要系统提供的库文件,包括静态库或动态库.不管是静态库还是动态库,都是编译好的二进制文件.在我们编译程序时要链接的目标文件,静态库是链接的时候直接编译到程序里,和程序成为一体 ...
- Makefile 自动搜索 c 和 cpp 文件, 并生成 .a 静态库文件
最近 又弄linux 下的 .a 静态库编译, 于是想 做个 一劳永逸的Makefile, 经过一番折腾, 最后成功了 只需要 改两个 参数 就可以执行了(MYLIB 和 VPATH), 代码 如下: ...
- CMake生成OpenCV解决方案&&编译OpenCV源码
生成OpenCV工程需要用到CMake,所以第一步需要下载CMake软件,下载链接:CMake下载 目前最新的版本是3.7.1,这里选择下载Platform下的Windows win32-x86 ZI ...
- OpenCV linux cmake添加使用
安装好opencv之后: 只需要添加一下,就可以方便的使用opencv了,find_package opencv 会寻找FindOpenCV.cmake find_package(OpenCV REQ ...
- 使用CMake编译跨平台静态库
在开始介绍如何使用CMake编译跨平台的静态库之前,先讲讲我在没有使用CMake之前所趟过的坑.因为很多开源的程序,比如png,都是自带编译脚本的.我们可以使用下列脚本来进行编译: . / con ...
- (转)HelloWorld CMake CMake中构建静态库与动态库及其使用
继续完善Hello World,建立它的共享库, 包括静态库和动态库. 本节的任务: 1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc 向终端输出Hello ...
随机推荐
- mha之vip漂移 配置binlog-server备份服务器 Atlas
MHAvip漂移 配置 通过MHA自带脚本方式,管理虚拟IP的漂移 获取管理脚本master_ip_failover cp master_ip_failover /usr/local/bin/ #脚本 ...
- 真正解决方案:phpMyAdmin #1089 - Incorrect prefix key; the storage engine doesn't support unique prefix key
先直接给解决方案: 点击A_I后,不要输入大小,直接点击执行!!! 分析 当你在使用phpMyAdmin 创建数据库表的时候,一般我们需要设置一个主键,然后让其自增长,但是有时候当你设置完成后,你可能 ...
- java ldap用户密码md5加密
在这里不过多介绍ldap,因为这样的文章特别多,这里就简单直接的记录这一个问题. 在springboot中通过引入spring-boot-starter-data-ldap,使用LdapTemplat ...
- 微信小程序tabBar的一个小坑
开始接触微信小程序的项目开发时,自己想添加底部导航,按照文档的方法在app.json添加tabBar,结果编译不出,工具台也没错误提示. 尝试在网上搜一下,看到有碰到类似情况的,解决方法是:app.j ...
- Java数组(3):创建测试数据
有时我们需要使用数组批量创建测试数据,接下来通过以下4点来举例. (1) 使用Arrays.fill()填充数据 (2) 使用Random类中JDK1.8提供的新方法用来生成随机数 (3) 一个随机数 ...
- JavaScript(4)——CSS选择的艺术
CSS选择的艺术 常用常见的选择器: 类选择器[ .class ],id选择器[ #id ],全局选择器[ * ],元素选择器[ element ] 根据层次关系定位: (1) element, el ...
- k8s 1.15.2 部署
目录 一.环境准备 二.软件安装 三.部署master节点 四.部署node节点 五.集群状态检测 一.环境准备 IP地址 节点角色 CPU Memory Hostname Docker versio ...
- vue弹窗后如何禁止滚动条滚动?
原文地址 常见场景 在许多填写表单的页面中,都会弹出一个选择器,让你在弹窗中选择项目.有时,弹窗本身容纳不下内容,需要让它不断滚动来展示,但因为事件是冒泡的,有时就会造成底部(body 的Z-inde ...
- 生命周期中mounted和created的区别。
一.什么是生命周期? 用通俗的语言来说,就是Vue中实例或者组件从创建到消灭中间经过的一系列过程.虽然不太严谨,但是也基本上可以理解. 通过一系列实践,现在把所有遇到的问题整理一遍,今天记录一下cre ...
- LeetCode.1207-唯一的元素出现次数(Unique Number of Occurrences)
这是小川的第次更新,第篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第269题(顺位题号是1207).给定一个整数数组arr,当且仅当该数组中每个元素的出现次数唯一时,返回tr ...