Dlib的官方解释是:

Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real world problems. It is used in both industry and academia in a wide range of domains including robotics, embedded devices, mobile phones, and large high performance computing environments. Dlib's open source licensing allows you to use it in any application, free of charge.

总之简单的说就是:一个集图像处理、计算机视觉、机器学习、深度学习于一身的视觉相关的瑞士军刀就是了,重要的是,它跟OpenCV一样是开源免费的。

在windows中编译Dlib是比较简单的,先说一下我的配置以及相关的依赖库

  • Cmake:配置和生成VS2015工程;

  • VS2015:编译DLib工具的lib文件;

  • CUDA9和cudnn7:为了打开CUDA功能;

  • jpeg:依赖项,我下载了jpegsr9c.zip;

  • libpng:依赖项,我下载了lpng1635.zip;

  • zlib:依赖项,我下载了zlib-1.2.11.tar.gz;

  • Dlib:我下载了dlib-19.15,应该是目前最新版本了把,支持VC2015和VS2017;

OK,下载了这些之后,我默认是先安装好了VS、CUDA和cudnnde,然后就先编译依赖项,顺序依次是libjpegzliblpng。接下来就是配置Dlib的VS工程,在用Cmake打开之前,先把下载的DLib解压出来的,然后修改一下文件dlib/CMakeLists.txt,注意不是解压出来根目录的CMakeLists.txt,然后修改第719行到724行为:


#set(DLIB_USE_CUDA OFF CACHE STRING ${DLIB_USE_BLAS_STR} FORCE )
#toggle_preprocessor_switch(DLIB_USE_CUDA)
#if (USING_OLD_VISUAL_STUDIO_COMPILER)
#   message(STATUS "*** Dlib CUDA support requires C++11 but your compiler doesn't support it. ***")
#endif()
#message(STATUS "Disabling CUDA support for dlib.  DLIB WILL NOT USE CUDA") set(source_files ${source_files} 
   cuda/cuda_dlib.cu 
   cuda/cudnn_dlibapi.cpp
   cuda/cublas_dlibapi.cpp
   cuda/cusolver_dlibapi.cu
   cuda/curand_dlibapi.cpp
   cuda/cuda_data_ptr.cpp
   cuda/gpu_data.cpp
   )
set(dlib_needed_libraries ${dlib_needed_libraries} 
   ${CUDA_CUBLAS_LIBRARIES} 
   ${cudnn}
   ${CUDA_curand_LIBRARY}
   ${cusolver}
   )
if(openmp_libraries)
   list(APPEND dlib_needed_libraries ${openmp_libraries})
endif() include_directories(${cudnn_include})
message(STATUS "Enabling CUDA support for dlib.  DLIB WILL USE CUDA")

这个主要还是为了打开CUDA,如果不用CUDA就不用了。

然后Cmake打开,这里需要注意,如果要配置CUDA的话,就一定要用管理员权限打开CMake,配置相关项目如下:

这里面有几个我是没有配置的:BLAS、CPACK、GIF、mkl,这几个是没有配置。

配置好之后,生成工程。然后打开VS,如果要使用CUDA,这里最好也用管理员权限打开VS2015,然后打开工程:

同样,这里也是对整个解决方案执行编译,然后再对INSTALL单独编译打包头文件和Lib文件,如果前面配置没有什么问题的话,这里应该是会灰常顺利的。打包出来的库文件如下:

然后,这里要注意,虽然打包出来了Dlib的头文件,但是在用的时候要把前面编译出来的其他依赖库的头文件加到工程里,这个后面讲DLib的例子的时候具体再说吧。

天地不仁,以万物為刍狗;

圣人不仁,以百姓為刍狗。

瑞士军刀DLib的VS2015编译的更多相关文章

  1. VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  2. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  3. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  4. 用VS2015编译sqlcipher

    简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌 ...

  5. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  6. VS2015编译FFMPEG,修改FFmpeg缓冲区大小解决实时流解码丢包问题,FFmpeg错误rtsp流地址卡死的问题,设置超时

    之前尝试过很多网上利用Windows编译FFmpeg的文章,都没有办法编译X64位的FFmpeg,有些教程中有专门提到编译64位的FFmpeg需要下载mingw-w64-install,但是编译的过程 ...

  7. vs2015编译caffe

    有些时候,需要在python3的环境下import caffe,需要用vs2015在python3的环境下,编译pycaffe. microsoft的windows版本的caffe,依赖的库Nuget ...

  8. 使用VS2015编译xlslib库

    环境: win7_x64,VS2015 开始: 一.下载xlslib库 xlslib-package-2.5.0.zip 解压到一个指定目录,如E:\library\xlslib-package-2. ...

  9. [转][JSBSim]使用VS2015编译JSBSim

    转自csdn原文:https://blog.csdn.net/yu_lei_/article/details/81463187 请大家去看原文,原文有图片和资源,本文仅供本人参考 权威参考:http: ...

随机推荐

  1. Redis原理详解

    Redis原理详解 数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redi ...

  2. Centos7关闭防火墙 设置开机启动

    [root@nmserver-7 ~]# systemctl stop firewalld.service [root@nmserver-7 ~]# systemctl status firewall ...

  3. 2020寒假 05 ——eclipse安装scala环境

    在eclipse中安装Scala环境 1安装eclipse插件步骤,点击help,选择Eclipse Marketplace 2.输入Scala,点击go 3.选择搜索到的Scala IDE 4.7. ...

  4. html5移动端主流适配方案

    1.流式布局(百分比布局)    案例:京东移动端 优点:简单方便,只需要固定高度,宽度自适应: 缺点:大屏幕手机实际显示的不协调. 2.响应式布局 优点:可以节约成本,不用再做专门的web app网 ...

  5. C# 控制台应用程序从外部传参运行和调试

    参考:/*十有三博客*/ 新建一个用于演示的控制台应用程序项目,然后在Program.cs的入口Main方法里编写如下代码 foreach (var arg in args) { Console.Wr ...

  6. asp.net mvc邮箱激活

    1.发送邮件 public ActionResult SendEmail() { var member = dbSession.MemberRepository.LoadEntities(p => ...

  7. MongoDB 常用查询语法

    一.查询 find方法 db.collection_name.find(); 查询所有的结果: select * from users; db.users.find(); 指定返回那些列(键): se ...

  8. 配置anaconda 的仓库镜像

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config -- ...

  9. tools.eclipse.内存配置

    环境:jdk1.7+eclipse luna 选择:Run ->Run Configurations, 在弹出框右侧中选择Arguments, 在VM arguments最后加入 -Xms256 ...

  10. Spring Cloud 支付宝支付的流程

    沙箱环境又称沙盘,为了开发与调试所提供的环境,它与生产环境互相隔离,但具有生产环境几乎完全相同的功能蚂蚁金服开放平台——开发者中心1.https://openhome.alipay.com2.提供的调 ...