开源库dlib的安装与编译-CMake
前言
最近项目涉及到关于face alignment的实现,了解到目前主要的算法有ERT、SDM、LBF等,其中由于dlib开源库实现了ERT算法,效果也很不错,故开始研究dlib的使用。而使用的第一步是dlib的安装与编译,本文针对这一内容展开。网上有很多资料,不过也遇到了很多问题,走了一些弯路,故记录下来。
系统环境
1.系统:win7_x64;
2.VS版本:VS2013;
3.dlib版本:19.1;
实现步骤
1.使用dlib的注意事项;
2.dlib的下载与安装;
3.基于CMake编译dlib;
实现过程
1.使用dlib的注意事项;
1.1dlib的官网here;
Dlib是一个跨平台的开源库,可以基于c++和python进行开发,包含了许多机器学习算法,官网上也有帮助文档和代码示例。dlib可以应用在Windows、Linux、Mac、embedded devices、mobile phones等,它的License是Boost Software License 1.0,可以商用。
dlib开源库的编译过程主要是生成dlib静态库,有两种方法,一种是通过Cmake,一种是通过自己创建的一个空的控制台工程,本文主要介绍第一种方法,之后会介绍第二种方法。
1.2版本的一致性;
dlib的版本与系统、编译器、VS版本需要具有一致性,通过实践发现,dlib19.1之后的较新版本适用于VS2015或者newer,同时VS2015只适用于win10或者newer系统,安装VS2015之后新建项目有如下提示:


根据现有的资源,选择dlib19.1+VS2013进行实现;
2.dlib的下载与安装;
2.1下载;
dlib官网的下载链接只有最新版本的,但是不适用于现有的资源,故需要下载之前的老版本,这个官网上是没有的,在此提供两种方法。
方法一:davisking的github;
方法二:sourceforge网站;
这两种方法都有各种版本的压缩包,非常方便,在此就要吐槽一下某度的搜索能力了,但是非常感谢同导师的两位同学提供的帮助;
2.2安装;
安装就非常简单了,直接解压就可以啦。。。
3.基于CMake编译dlib;
3.1CMake的下载安装;
CMake官网here,在download页面就有需要的下载链接,安装即可;

3.2dlib的编译过程;
step1:打开cmake-gui的界面,添加source code和生成文件的路径;

step2:点击configure选择生成器;

step3:点击generate生成项目文件;
最后的界面如下图所示:

生成成功之后的生成文件内容如下图所示:

以上只是将dlib开源库转换成一个VS工程,还需要打开、生成该工程;
step4:使用VS2013打开dlib项目的解决方案,方案平台选择的是x64,分别在Debug和Release模式下生成dlib的静态库文件,
保存在生成文件路径下的debug和release文件夹中;


接下来就是将dlib.lib导入到需要用到的工程中,主要需要修改项目属性,包括添加附加库目录和附加依赖项,关于dlib的使用会在之后做介绍;
注意(20180110):
本人按照以上步骤在笔记本上是可以正常运行生成静态库的,但是在boss的电脑上出现了错误,错误是关于模块计算机和目标计算机不匹配的问题,这类问题很可能就是编译器类型和链接库等类型不匹配。此处step2选择的编译器修改为win64版本的即可,主要在于当前的生成器都是win64的即可;


参考
1.dlib的编译;
2.dlib提取特征点的总结;
3.编译过程;
完
开源库dlib的安装与编译-CMake的更多相关文章
- libCURL开源库在VS2010环境下编译安装,配置详解
libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...
- linux下安装libcurl及开源库的一般安装步骤
前言 总有人说:要多看源代码!那么源代码去哪找呢?找到了又该怎么安装呢?本票博客不介绍如何使用和学习,只要讲获取和安装,以后会将curl和libevent的使用和学习. 一.开源库常用安装步骤 1.开 ...
- c++ 开源库介绍和安装
1 BLAS库 BLAS(Basic Linear Algebra Subprograms)是一组线性代数计算中通用的基本运算操作函数集合.BLAS Technical (BLAST) Forum负责 ...
- cryptopp开源库的使用(零):windows下使用visual studio编译
编译相当简单:打开目录下的sln文件直接编译即可,官方支持到vc2012,我使用vs2013也没有错误,优秀的开源库总是便于使用. 编译的时候注意运行库得选择需要跟使用该库的保持一致,否则会出现重定义 ...
- MXNet 学习 (1) --- 最易上手的深度学习开源库 --- 安装及环境搭建
安装环境:Win 10 专业版 64位 + Visual Studio 2015 Community. 记录下自己在有GPU的环境下安装配置MXNet的过程.该过程直接使用MXNet release ...
- python学习--Linux下dlib安装(主要是cmake和boost的安装)
昨天我们使用了dlib和opencv进行了人脸检测标注(http://www.cnblogs.com/take-fetter/p/8310298.html) 但是运行环境是基于windows的而且可能 ...
- 视觉slam十四讲开源库安装教程
目录 前言 1.Eigen线性代数库的安装 2.Sophus李代数库的安装 3.OpenCV计算机视觉库的安装 4.PCL点云库的安装 5.Ceres非线性优化库的安装 6.G2O图优化库的安装 7. ...
- 安装与编译Dlib(以Ubuntu16.04+Python3.6+pip为例)
安装与编译Dlib(以Ubuntu16.04+Python3.6+pip为例) Step1:下载Ubuntu (or Linux)系统支持库=>Install OS libraries -dev ...
- 开源服务专题之--------mysql的编译安装
为什么选择MySQL 1:mysql性能卓越,服务稳定,很少出现异常宕机 2:mysql开源免费,无版权制约,自主性及使用成本低 3:产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是ph ...
随机推荐
- C++异常及捕获_01
ZC: Win7x64 + qt-opensource-windows-x86-msvc2010_opengl-5.3.2.exe 1. class AA { public: void A() { & ...
- Thunder团队--Alpha发布用户报告
用户数量:12人 以下为用户评论:(注:为了保护用户的姓名权,以下用户名以昵称形式给出.) 用户名(昵称) 用户使用频次 用户评论(以图片展示) 小王 3次 米线 2次 孔小姐 5次 乌乌鸟 2次 永 ...
- nginx常用命令汇总
nginx基础命令: sudo nginx // 开启nginx服务器 sudo nginx -s reload // 重启nginx服务器 sudo nginx -s stop // 关闭nginx ...
- export与export default exports与module.exports的用法
转载:http://blog.csdn.net/zhou_xiao_cheng/article/details/52759632 本文原创地址链接:http://blog.csdn.net/zhou_ ...
- 二叉树最大宽度 Maximum Width of Binary Tree
2018-07-27 15:55:13 问题描述: 问题求解: 题目中说明了最后的宽度计算其实是按照满二叉树来进行计算的,也就是说如果我们能够得到每层最左边的节点编号和最右边的节点编号,那么本题就可以 ...
- jsp post/get中接处理
jsp post/get中接处理 以参数:username为便 post接收中文比get接收中文要方便多了. <%@ page contentType="text/html;chars ...
- English trip M1 - PC12 I'd Like a Room Please Teacher:Taalan
In this lesson you will learn to say what you need. 在本课中,您将学习如何说出您的需求. Words list elevator 电梯 ...
- 『TensotFlow』RNN/LSTM古诗生成
往期RNN相关工程实践文章 『TensotFlow』基础RNN网络分类问题 『TensotFlow』RNN中文文本_上 『TensotFlow』基础RNN网络回归问题 『TensotFlow』RNN中 ...
- spring cloud 学习(一)初学SpringCloud
初学SpringCloud 前言 在SpringBoot的坑还没填完的情况下,我又迫不及待地开新坑了.主要是寒假即将结束了,到时又得忙于各种各样的事情……留个坑给自己应该就会惦记着它,再慢慢地补上…… ...
- @Resource与@Autowired注解的区别
一.写本博文的原因 年初刚加入到现在的项目时,在使用注解时我用的@Resource.后来,同事:你怎么使用@Resource注解?我:使用它有错吗?同事:没错,但是现在都使用@Autowired.我: ...