#先安装 cmake 3.14

# cmake安装到了 /usr/local/bin

#配置PATH

export PATH="$PATH:/usr/local/bin"

#下载最新的opencv

git clone "https://github.com/opencv/opencv.git"

git clone "https://github.com/opencv/opencv_contrib.git"

#定义自己的生成目录
mkdir 20190508
mkdir -p opencv-master/build
cd opencv-master/build

#生成配置的时候选择带上opencv-contrib

cmake -DOPENCV_EXTRA_MODULES_PATH=/home/admin/opencv/opencv_contrib-master/modules ..

#执行ccmake,配置编译选项

ccmake ..

#我配置的主要选项如下:

 1 BUILD_DOCS:BOOL=OFF
2 BUILD_EXAMPLES:BOOL=OFF
3 BUILD_IPP_IW:BOOL=OFF
4 BUILD_ITT:BOOL=OFF
5 BUILD_JASPER:BOOL=OFF
6 BUILD_JAVA:BOOL=OFF
7 BUILD_JPEG:BOOL=OFF
8 BUILD_OPENEXR:BOOL=OFF
9 //Build performance tests
10 BUILD_PERF_TESTS:BOOL=OFF
11 //Build libpng from source
12 BUILD_PNG:BOOL=OFF
13 //Force to build libprotobuf from sources
14 BUILD_PROTOBUF:BOOL=OFF
15 //Build shared libraries (.dll/.so) instead of static ones (.lib/.a)
16 BUILD_SHARED_LIBS:BOOL=OFF
17 //Download and build TBB from source
18 BUILD_TBB:BOOL=OFF
19 //Build accuracy & regression tests
20 BUILD_TESTS:BOOL=OFF
21 //Build libtiff from source
22 BUILD_TIFF:BOOL=OFF
23 //Build WebP from source
24 BUILD_WEBP:BOOL=OFF
25 //Build utility applications (used for example to train classifiers)
26 BUILD_opencv_apps:BOOL=OFF
27 //Include opencv_face module into the OpenCV build
28 BUILD_opencv_face:BOOL=OFF
29 //Include opencv_highgui module into the OpenCV build
30 BUILD_opencv_highgui:BOOL=OFF
31 //Include opencv_java_bindings_generator module into the OpenCV
32 // build
33 BUILD_opencv_java_bindings_generator:BOOL=OFF
34 //Build JavaScript bindings by Emscripten
35 BUILD_opencv_js:BOOL=OFF
36 //Include opencv_xfeatures2d module into the OpenCV build
37 BUILD_opencv_xfeatures2d:BOOL=OFF
38 //Installation Directory
39 CMAKE_INSTALL_PREFIX:PATH=/home/admin/opencv/20190508
40
41 //Include NVidia Cuda Runtime support
42 WITH_CUDA:BOOL=OFF
43
44 //Include Intel IPP support
45 WITH_IPP:BOOL=OFF
46
47 //Include Intel ITT support
48 WITH_ITT:BOOL=OFF
49
50 //Include JPEG2K support
51 WITH_JASPER:BOOL=OFF
52
53 //Include JPEG support
54 WITH_JPEG:BOOL=OFF
55
56 //Include Lapack library support
57 WITH_LAPACK:BOOL=OFF
58
59 //Include ILM support via OpenEXR
60 WITH_OPENEXR:BOOL=OFF
61
62 //Include PNG support
63 WITH_PNG:BOOL=OFF
64
65 //Build with Qt Backend support
66 WITH_QT:BOOL=OFF
67
68 //Include Intel TBB support
69 WITH_TBB:BOOL=OFF
70
71 //Include TIFF support
72 WITH_TIFF:BOOL=OFF
73
74 //Include Vulkan support
75 WITH_VULKAN:BOOL=OFF
76
77 //Include WebP support
78 WITH_WEBP:BOOL=OFF

配置有这样一些考虑:

1.仅满足linux下的基本的图形处理的使用;
2.不要CUDA,不要各种图形格式的支持;
3.生成静态库,避免多人使用的情况下大家相互覆盖;
4.生成在自己的目录下,不放在系统目录。

配置完成后按g,生成配置,退出。

make -j 20

make install

等到链接具体的程序的时候,还需要额外的一些库:
gcc -o xxx_elf xxx.o -L"/home/admin/opencv/20190508/lib64" -lopencv_core -lopencv_imgproc -lopencv_imgcodecs \

-ldl -lz -pthread

opencv 4.0 + linux下静态编译,展示详细ccmake的参数配置的更多相关文章

  1. opencv 4.0 + linux + cuda静态编译

    #下载最新的opencv git clone "https://github.com/opencv/opencv.git" git clone "https://gith ...

  2. ACE-6.1.0 linux 下的编译与安装步骤

    ACE-6.1.0 linux 下的编译与安装步骤  引用至http://www.cnblogs.com/liangxiaxu/archive/2013/03/07/2948417.html 1.从  ...

  3. Qt5.5.0在Linux下静态编译(加上-fontconfig编译项才能显示中文) good

    测试系统环境:Ubuntu12.04 (32bit/64bit)编译软件环境:QT5.5.0   本文章主要介绍Linux下QT静态编译环境的搭建,以及如何编译我们的程序board_driver. 1 ...

  4. Linux下静态编译Qt

    Qt采用编译的方式安装的时候,配置中默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,所 ...

  5. Linux下静态编译Qt程序

    一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的.会提示缺少……库文件之类的错误.这就是动态编译的结果. 但是如果我们想编译一个程序 ...

  6. Oracle数据库学习(二):Oracle Linux下oracle、ogg的挂载与参数配置

    准备工作:打开虚拟机端的Oracle Linux Server 6.9的系统,然后使用root用户登录.打开终端界面,输入ifconfig -a查看IP地址. 然后在本地打开XShell软件使用以下命 ...

  7. Linux下静态库生成和使用

    Linux下静态库生成和使用 一.静态库概念 1.库是预编译的目标文件(object  files)的集合,它们可以被链接进程序.静态库以后缀为”.a”的特殊的存档(archive file)存储. ...

  8. LINUX下文件编译

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  9. 从四个问题透析Linux下C++编译&链接

    摘要:编译&链接对C&C++程序员既熟悉又陌生,熟悉在于每份代码都要经历编译&链接过程,陌生在于大部分人并不会刻意关注编译&链接的原理.本文通过开发过程中碰到的四个典型 ...

随机推荐

  1. 报错处理 java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean

    java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean at org.apache.catalina.loade ...

  2. Linux使用SCP命令不使用密钥直接进行远程复制(SSH免密登录)

    假设A服务器要把文件复制到B服务器上 首先我们要在A服务器上生成密钥对 参考:https://www.cnblogs.com/pxblog/p/14396409.html 然后在把生成的密钥公钥id_ ...

  3. 【剑指Offer】第一个只出现一次的字符 解题报告(Python)

    [剑指Offer]第一个只出现一次的字符 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...

  4. Java代码性能优化

    (1)在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 控制资源的使用,通过线程同步来控制资源的并 ...

  5. Deepin20系统安装Nvidia驱动

    Deepin20系统安装Nvidia驱动 系统设备配置信息如下: 电脑型号:华硕天选air[ASUS-FX516P] 显卡型号:RTX 3070 移动版独显 处理器型号: 11th Gen Intel ...

  6. JavaScript交互式网页设计作业目录(作业笔记)

    JavaScript交互式网页设计笔记 • [目录] 我的大学笔记>>> 第1章 JavaScript基本语法>>> 1.1.4 使用 JavaScript 的 H ...

  7. HTML网页设计中 link 和 @import 的区别

    页面中使用CSS的方式主要有3种:行内添加定义style属性值,页面头部内嵌调用和外面链接调用,其中外面引用有两种:link和@import.外部引用CSS两种方式link和@import的方式分别是 ...

  8. PaperRead - Comparison of Fundamental Mesh Smoothing Algorithms for Medical Surface Models

    几种常见平滑算法的实现可以参见: 几种网格平滑算法的实现 - Jumanco&Hide - 博客园 (cnblogs.com) 1 Introduction 图像空间中相关的组织和结构,变换成 ...

  9. python 插入mysql数据库字符串中含有单引号或双引号报错

    出现问题场景:使用mysql数据库管理接口测试用例,新增接口用例时,传入的paras内容,有多层嵌套的时候,就会有["]双引号括住[']单引号的情况,可能在插入单双引号的数据到数据库的时候, ...

  10. unittest_认识unittest(1)

    unittest是python内置的单元测试框架,具备编写用例.组织用例.执行用例.输出报告等自动化框架的条件. 使用unittest前需要了解该框架的五个概念: 即test case,test su ...