ubuntu22.04下编译安装dlib

embedded/2024/10/21 10:09:16/

为什么要自己编译,请自行摆渡。

#---------------------------------------------------------------------------
#  compile and inistall dlib C++ library
#---------------------------------------------------------------------------
cd /opt
mkdir dlib-root && cd dlib-root
mkdir build && mkdir install
git clone https://github.com/davisking/dlib.git source
cd build
cmake-gui

1. Config
dlib默认是编译成静态库,而我们想要的动态库。
点击"Add ENtry"按纽, 如下图:

按上图输入新增的Config参数, 这将编译成我们希望的动态库。

将DDLIB_USE_CUDA的值设为0(不启用CUDA, 理由自己脑补)
将/opt/dlib-root/install的value由默认的/usr/local修改为/opt/dlib-root/install
将DUSE_AVX_INSTRUCTIONS打勾
不选择:
DLIB_JXL_SUPPORT:0      ##这玩意儿有点麻烦, 请百度libjxl

DLIB_USE_FFMPEG, 点击"Configure"按纽, 出现以下:

Checking for modules 'libavdevice;libavfilter;libavformat;libavcodec;libswresample;libswscale;libavutil'
  No package 'libavdevice' found
  No package 'libavfilter' found
 *****************************************************************************
 *** No FFMPEG/LIBAV libraries found.                                      ***
 *** On Ubuntu you can install them by executing                           ***
 ***    sudo apt install libavdevice-dev libavfilter-dev libavformat-dev   ***
 ***    sudo apt install libavcodec-dev libswresample-dev libswscale-dev   ***
 ***    sudo apt install libavutil-dev                                     ***
 *****************************************************************************
打开另一session, 按照提示安装相关依赖组件。
点击"Configure"按纽, 这次没有错误提示了:
Using CMake version: 3.29.2
Compiling dlib version: 19.24.99
Enabling AVX instructions
Found system copy of libpng: /usr/lib/x86_64-linux-gnu/libpng.so;/usr/lib/x86_64-linux-gnu/libz.so
Found system copy of libjpeg: /usr/lib/x86_64-linux-gnu/libjpeg.so
Searching for BLAS and LAPACK
Searching for BLAS and LAPACK
Checking for module 'cblas'
  No package 'cblas' found
Found OpenBLAS library
Using OpenBLAS's built in LAPACK
Searching for FFMPEG/LIBAV
Checking for modules 'libavdevice;libavfilter;libavformat;libavcodec;libswresample;libswscale;libavutil'
  Found libavdevice, version 58.13.100
  Found libavfilter, version 7.110.100
  Found libavformat, version 58.76.100
  Found libavcodec, version 58.134.100
  Found libswresample, version 3.9.100
  Found libswscale, version 5.9.100
  Found libavutil, version 56.70.100
Found FFMPEG/LIBAV via pkg-config in `/usr/lib/x86_64-linux-gnu`
Configuring done (0.9s)

2. Generate:
3. build && install:
cmake ../source
make -j $(nproc)
make install
make clean

4. 创建include及lib的链接:
cp /opt/dlib-root/install/lib/pkgconfig/dlib-1.pc /usr/local/lib/pkgconfig
ln -sf /opt/dlib-root/install/include/dlib /usr/local/include/dlib
ln -sf /opt/dlib-root/install/lib/libdlib.so /usr/local/lib/libdlib.so
5. 查看版本
pkg-config --modversion dlib-1


http://www.ppmy.cn/embedded/54011.html

相关文章

react 使用 valtio

安装 npm i valtio//好用的storage npm i good-storage使用 src目录下创建store文件夹,新增两个文件 index.js export * from ./useruser.js import { proxy,subscribe } from valtio import {useProxy} from valtio/utils import ss from good-storage const k…

Grafana 对接 Zabbix 数据源API错误

介绍 主要报错为 Invalid params. Invalid parameter "/": unexpected parameter "user". 主要原因为Zabbix 6.4.0以上的版本更新了API,导致Grafana的数据源插件不兼容。 解决方案 更新到最新的Grafana 和 grafana-zabbix 插件即可。&#x…

1982Springboot宠物美容院管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot宠物美容院管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系 统具有完整的源代码和数据库…

使用adb shell getprop命令获取Android设备的属性

常用属性获取: adb shell getprop ro.build.version.emui —查询EMUI版本 adb shell getprop ro.product.brand —查询手机品牌 adb shell getprop ro.product.name --查询设备名称 adb shell getprop ro.serialno —查询设备序列号 获取手机系统信息( CPU,厂商…

Linux 搭建 kafka 流程

优质博文:IT-BLOG-CN 一、安装环境 【1】CenOS7虚拟机三台 【2】已经搭建好的zookeeper集群。 【3】软件版本:kafka_2.11-1.0.0 二、创建目录并下载安装软件 【1】创建目录 cd /opt mkdir kafka #创建项目目录 cd kafka mkdir kafkalogs #创建kafk…

【Python】易错题 [1]

目录 一、选择: 1.列表的复制​编辑 2.函数 二、填空 一、选择: 1.列表的复制 在Python中,列表是可变的数据类型。当将一个列表赋值给另一个变量时,实际上是将这个变量的引用指向原始列表。(指针)因此&…

【漏洞复现】万户-ezOFFICE download_ftp.jsp 任意文件下载漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

Nacos 2.x 系列【15】数据源插件支持达梦、Oracel、PostgreSQL......

文章目录 1. 概述2. 持久层机制2.1 固定语句2.2 数据源插件 3. 案例演示3.1 编译已实现插件3.2 自定义插件3.3 数据库初始化3.4 插件引入3.4.1 方式一:引入到源码3.4.2 方式二:插件加载目录 3.5 修改配置3.6 测试 1. 概述 在实际项目开发中,…