Dlib简介及在windows7 vs2013编译过程
Dlib是一个C++库,包含了许多机器学习算法。它是跨平台的,可以应用在Windows、Linux、Mac、embedded devices、mobile phones等。它的License是Boost Software License 1.0,可以商用。Dlib的主要特点可以参考官方网站:http://dlib.net/
下面说一下在window7 vs2013上的编译过程:
有两种方法,一种方法是通过CMake;一种是通过自己创建一个空的控制台工程,来生成Dlib静态库。
这里说一下通过空的控制台生成静态库的过程:
1、 新建一个空的控制台工程Dlib;
2、 目前Dlib最新的Release版本是v19.2,但是v19.2需要有vs2015的支持,这里通过vs2013编译v19.1版本,从https://github.com/davisking/dlib/releases 下载v19.1;
3、 将dlib/all/source.cpp和dlib/external/中zlib、libpng、libjpeg三个目录下的.c、.cpp文件加入到工程中,加入zlib、libpng、libjpeg文件是为了能够让dlib直接支持读取.png、.jpeg格式图像;
4、 dlib工程属性,修改主要包括:
(1)、配置属性--> 常规--> 配置类型:静态库 (.lib);
(2)、C/C++ --> 常规--> 附加包含目录:添加zlib/libpng/libjpeg头文件;
(3)、C/C++ --> 预处理器 --> 预处理器定义:DLIB_PNG_SUPPORT、DLIB_JPEG_SUPPORT;
(4)、解决方案平台:x64
5、 修改源码:
(1)、dlib/ matrix/matrix_utilities.h : error C2057,lines: 2665,将
{
COMPILE_TIME_ASSERT(pixel_traits<P>::num > 0);
matrix<T,pixel_traits<P>::num,1> m;
pixel_to_vector_helper<P>::assign(m,pixel);
return m;
}
调整为:
{
COMPILE_TIME_ASSERT(static_cast<int>(pixel_traits<P>::num) > 0);
matrix<T,pixel_traits<P>::num,1> m;
pixel_to_vector_helper<P>::assign(m,pixel);
return m;
}
(2)、dlib/external/libpng/pngread.c: error C4703, lines: 1029, 将
{
png_color_8p sig_bit;
png_get_sBIT(png_ptr, info_ptr, &sig_bit);
png_set_shift(png_ptr, sig_bit);
}
调整为:
{
png_color_8p sig_bit = NULL;
png_get_sBIT(png_ptr, info_ptr, &sig_bit);
png_set_shift(png_ptr, sig_bit);
}
6、 选中工程Dlib,在x64下即可生成Dlib静态库。
GitHub:https://github.com/fengbingchun/Face_Test
Dlib简介及在windows7 vs2013编译过程的更多相关文章
- OpenBLAS简介及在Windows7 VS2013上源码的编译过程
OpenBLAS(Open Basic Linear Algebra Subprograms)是开源的基本线性代数子程序库,是一个优化的高性能多核BLAS库,主要包括矩阵与矩阵.矩阵与向量.向量与向量 ...
- 人脸识别引擎SeetaFaceEngine简介及在windows7 vs2013下的编译
SeetaFaceEngine是开源的C++人脸识别引擎,无需第三方库,它是由中科院计算所山世光老师团队研发.它的License是BSD-2. SeetaFaceEngine库包括三个模块:人脸检测( ...
- GDAL库简介以及在Windows下编译过程
GDAL(Geospatial Data Abstraction Library,地理空间数据抽象库)是一个在X/MIT许可协议下的开源栅格空间数据转换库.官网http://www.gdal.org/ ...
- vs2013编译过程中,错误 59 error C4996: 'GetVersionExW': 被声明为已否决
好几次碰到这个错误,必须mark 一下!!!!!Project Properties > Configuration Properties > C/C++ > General > ...
- 转 C语言编译过程简介
C语言编译过程简介 C语言编译过程简介 刚开始接触编程的时候,只知道照书敲敲代码,一直都不知道为什么在windows平台下代码经过鼠标那样点击几下,程序的结果就会在那个黑色的屏幕上.现在找了个机会将C ...
- C语言笔记——简介与编译过程初探
序言 从今天起,详细说说C语言.这一年多,在大多数语言和技术之间转了一大圈,终于看清楚了事实,决心静下心来好好学学C语言.初学者会认为C语言是个入门用的东西,没有必要深入研究.但对计算机领域再稍加了解 ...
- .NET框架源码解读之SSCLI编译过程简介
前文演示了编译SSCLI最简便的方法(在Windows下): 在“Visual Studio 2005 Command Prompt”下,进入SSCLI的根目录: 运行 env.bat 脚本准备环境: ...
- C语言基础(21)-C语言编译过程及GCC参数简介
任何C语言的编译过程可分为以下三部分: 一.预编译 在C语言中,以#开头的语句又叫预编译指令.预编译主要做以下两件事情: 1.将#include包含的头文件做简单的文本替换: 2.将代码中的注释删除. ...
- C++ 编译过程简介
C/C++程序编译流程: 预处理->编译->汇编->链接 具体的就是: 源代码(source coprede)→预处理器(processor)→编译器(compiler)→汇编程序( ...
随机推荐
- lazysizes-好用的延迟加载JS插件
此插件可直接引入lazysizes即可 <script src="lazysizes.min.js"></script> 延迟加载(lazy load)是( ...
- mail发邮件报错 "send-mail: fatal: parameter inet_interfaces: no local interface found for ::1"
发送邮件: [root@itfswelog123]# echo '测试邮件标题' | mail -s "数据库挂啦.挂啦.起床啦 " xx@163.com 出现异常: [r ...
- [LuoguP3668][USACO17OPEN]现代艺术2
[LuoguP3668][USACO17OPEN]Modern Art2(Link) 现在你有一块长为\(N\)的画布,每次可以选择一段连续的区间进行颜色填涂,新颜色会覆盖旧颜色.每一次填涂都要耗费一 ...
- Jmeter--常见问题及解决办法
此文转自微信公众号:自动化性能测试 JMeter常见问题及解决方法 一.录制不到以html结尾的请求 在使用代理服务器录制脚本的时候,可能会出现html结尾的请求录制不到的问题.这是因为浏览器为了提升 ...
- HDU 1213(裸并查集)(无变形)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1213 How Many Tables Time Limit: 2000/1000 MS (Java/ ...
- MongoDB简易
一 安装 1.下载 $ brew install mongodb 2.启动 $ mongod --config /usr/local/etc/mongod.conf 3.连接 $ mongo 二 ...
- (转)Linux内核基数树应用分析
Linux内核基数树应用分析 ——lvyilong316 基数树(Radix tree)可看做是以二进制位串为关键字的trie树,是一种多叉树结构,同时又类似多层索引表,每个中间节点包含指向多个节点的 ...
- [Oracle]Oracle良性SQL建议
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处 ...
- 纯swift开发,弹幕,演唱会广告牌
最近去了次演唱会,看见有人在用这个,刚好没事,我自己也写了一个. 顺手练一练swift,第一个纯swift开发工程. 支持字体大小切换,滚动速度切换,字体切换,字体颜色切换 工程Git:https:/ ...
- ES module 实现方式
随着js社区不断发展,js功能更加强大,细数js的几种 module 方式. 整理了七种模块化方式 1.作为新手,练习小的demo,比较喜欢的方式.不适合大的项目. <!--html--> ...