Ubuntu下部署opencv到工程里

发布时间:2026/10/7 3:09:25

Ubuntu下部署opencv到工程里 一、背景在项目中希望工程能快速地移植到他人的电脑里而不用手动安装配置opencv环境。所以我们需要把opencv放入工程里。在这里我第一时间想的就是使用opencv编译静态库:cmake -D CMAKE_BUILD_TYPERELEASE .. \ -D CMAKE_INSTALL_PREFIXinstall \ -D OPENCV_EXTRA_MODULES_PATH../opencv_contrib-4.5.0/modules \ -D OPENCV_GENERATE_PKGCONFIGON \ -D BUILD_SHARED_LIBSNO \ ..编译完后我发现静态库太多一个一个链接入工程太麻烦于是我在编译的时候又加入了 -D BUILD_opencv_worldON 这样所有库都会被整合起来。但问题也随之而来在调用这个库时工程报错了原因是找不到对应的库文件。查了一番后发现虽然库文件都被整合起来了但这个整合起来的静态库文件里没有调用那些库文件的参数。在思考一番后我想既然静态库不行我用动态库可不可以。一般工程里使用opencv是在CMakeLists.txt文件里利用 find_package(OpenCV REQUIRED) 去找到opencv安装目录里的四个.cmake文件再通过这些文件找到对应配置的opencv文件。这样只要在CMakeLists.txt里设置.cmake文件的查找路径再写个自动给配置文件添加lib库文件路径的.sh文件。具体步骤如下二、opencv部署opencv版本4.5.01.安装环境依赖sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev第三行可选择是否安装依赖2.下载源码opencv https://opencv.org/releases/opencv_contrib https://github.com/opencv/opencv_contrib/tree/4.5.0将opencv_contrib放到opencv文件夹3.编译新建build.sh文件写入#!/bin/bash if [[ ! -d build ]]; then mkdir build fi cd build rm -rf * cmake -D CMAKE_BUILD_TYPERELEASE .. \ -D CMAKE_INSTALL_PREFIXinstall \ -D OPENCV_EXTRA_MODULES_PATH../opencv_contrib-4.5.0/modules \ -D OPENCV_ENABLE_NONFREEON \ -D BUILD_opencv_python2OFF \ -D BUILD_opencv_python3OFF \ -D OPENCV_GENERATE_PKGCONFIGON \ -D BUILD_opencv_javaOFF \ -D BUILD_opencv_worldON \ -D BUILD_OPENEXRON \ -D BUILD_JAVAOFF \ -D BUILD_ANDROID_EXAMPLESOFF \ -D WITH_OPENCLOFF \ -D WITH_IPPOFF \ -D WITH_TBBOFF \ -D BUILD_EXAMPLESOFF \ -D BUILD_TESTSOFF \ -D BUILD_PERF_TESTSOFF \ -D BUILD_DOCSOFF \ .. make -j4 make install可以根据需要增删各个启用参数4.部署编译成功后获得一个install文件夹把文件夹里的lib文件夹和Include文件夹复制到工程文件里。在CMakeLists.txt文件里添加# find opencv set(OpenCV_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/cmake/opencv4) find_package(OpenCV 4.5.0 REQUIRED) include_directories(./include/opencv4) target_link_libraries(这里写你设置的工程名 PUBLIC ${OpenCV_LIBS} )新建一个EnvironmentalConfiguration.sh#!/bin/bash sudo -s EOF cd ./lib DIR$(cd $(dirname $0) pwd ) cd /etc/ld.so.conf.d/ if [ -d ./opencv.conf ]; then touch opencv.conf fi echo $DIR opencv.conf ldconfig EOF这个将opencv库文件路径加入配置,以防万一配置没启用EnvironmentalConfiguration.sh文件运行后重启一次电脑。这样只要将工程文件夹整个打包发给别人解压后运行EnvironmentalConfiguration.sh就可以使用opencv了。
延伸阅读

更多相关文章

2026/10/7 3:09:29

外贸ERP怎么选:纯CRM够不够,什么时候非上“进出口一体“不可

利益相关:从事外贸ERP(汇信),下面尽量讲中立的判断框架,不吹某一家。 外贸公司选系统,最常见的误区是把“CRM/获客工具”当成“外贸管理系统”。两者解决的根本不是一回事——选错了,要么花冤枉钱,要么用一两年发现后段全靠手工,数据两张皮。 一、先分清两类系统 获客型/纯CRM(…

2026/10/7 3:12:07

Python 专栏目录索引

文章目录Python 环境搭建Python 语法 变量、print、注释和运算符Python 的基本结构Python 中的文件和文件夹操作Python 中常用库HTML文件格式Python 文件打包成 exe 可执行文件Python 常见问题及解决方案Python 应用实例PyCharm 安装虚拟环境Python 环境搭建 vscode搭建Python…

2026/10/7 18:01:49

Redis底层数据结构设计哲学:从SDS到listpack的演进与实战

干这行这么多年,Redis 的底层数据结构一直是面试里的"显眼包",也是很多团队做技术分享时最爱讲的话题。但说实话,我见过太多人把 SDS、跳表、压缩列表背得滚瓜烂熟,真到了线上 Redis 出现内存暴涨、请求毛刺、甚至主线程…

2026/10/7 18:01:49

Spring AI MCP 客户端 Boot Starter 原理与实战指南

老实说,搞了大半年 Spring AI 项目,最让我头疼的从来不是让模型把话说漂亮,而是让它真正动手干活。查数据库、翻文件、调内部接口,这些事模型自己干不了,得靠人写一堆胶水代码。我大概从 Spring AI 0.8 开始追 MCP 这个…

2026/10/7 18:01:49

30天晨间习惯挑战全复盘:从Day1到Day30的完整执行方案

Day30-20260126,这个标题看起来像一串普通的日记编号,但对我来说它意味着一件事:我给自己设定的30天晨间习惯挑战,在第30天那天恰好落在2026年1月26日。从Day1到Day30,整整一个月,每天早起一小时&#xff0…

2026/10/7 18:01:49

继续教育论文降AI率实战:从检测原理到8款工具测评与改写工作流

上个月一个朋友急得不行,说她在成人本科读工商管理,论文初稿传上去,学校系统直接标了“疑似AI生成:76%”,再不处理可能要延期。这种事在2026年早就不是个例了。很多继续教育院校、开放大学、在职专升本项目的论文系统都…

2026/10/7 18:01:49

标星10k开源搜索聚合工具:浏览器内多源搜索门户部署指南

如果你平时需要在项目搜索、文档查询、技术问答之间来回切换,那这款在 GitHub 上标星突破 1 万的开源项目,值得你静下心认真看完。它和普通搜索引擎最大的区别在于:不是让你“换一个引擎”,而是把一大票搜索能力全部塞进浏览器里&…

2026/10/7 17:56:48

FPGA实战:Cameralink Full模式图像采集系统设计与调试

干FPGA的人都知道,图像采集这条链路,接口协议这块永远是最磨人的。Cameralink看着是老技术,但在工业相机、医疗设备、机器视觉这些领域,它依然是绕不开的硬需求。尤其Full模式,三端口加起来一个像素时钟能搬84bit数据&…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/7 8:18:33

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑