Mingw编译DLib

因为机器上安装了qt-opensource-windows-x86-mingw530-5.8.0,所以准备使用其自带的mingw530来编译DLib使用。

因为DLib使用CMake的构建脚本,所以还请先安装好CMake

cmake的下载地址如下https://cmake.org/files/v3.7/cmake-3.7.2-win64-x64.msi

编译出的文件在这里https://share.weiyun.com/1e6d7dc98bc8a9fa2922f99ee11dcdac

下载Dlib源码

可以直接去DLib的官网http://dlib.net/找到你想要版本进行下载。

这里给出DLib-19.4的下载链接http://dlib.net/files/dlib-19.4.zip

或者直接从github克隆一个

git clone https://github.com/davisking/dlib.git

生成Makefile

使用Cmake来生成Makefile文件。

打开开始菜单里面的Qt 5.8下面的Qt 5.8 for Desktop (MinGW 5.3.0 32 bit)命令行工具,然后输入下面的命令生成Makefile文件。

如果你不是使用的Qt自带的mingw,那么也可以使用你自己下载安装的mingw。前提是需要先把mingwbin目录路径添加到环境变量Path中。可以使用set Path=%Path%;mingw的bin路径来临时使用。

D:\dlib-19.4\build>cmake -DCMAKE_INSTALL_PREFIX=D:/libs/dlib -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE=mingw32-make ..

实际上上面的命令还有些不对,请看后面的说明。

使用上面命令之后出现了如下错误输出

-- The C compiler identification is GNU 5.3.0
-- The CXX compiler identification is GNU 5.3.0
-- Check for working C compiler: C:/Qt/Qt5.8.0/Tools/mingw530_32/bin/gcc.exe
CMake Error: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" "cmTC_faf78\fast"
-- Check for working C compiler: C:/Qt/Qt5.8.0/Tools/mingw530_32/bin/gcc.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.7/Modules/CMakeTestCCompiler.cmake:51 (message):
The C compiler "C:/Qt/Qt5.8.0/Tools/mingw530_32/bin/gcc.exe" is not able to
compile a simple test program.

看输出是其去创建了nmake的构建脚本,这不是预期的。

于是添加了-G "MinGW Makefiles"选项之后重新生成,命令如下

cmake -DCMAKE_INSTALL_PREFIX=D:/libs/dlib -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release  -G"MinGW Makefiles"  ..

又出现下面的错误了

CMake Error: Error: generator : MinGW Makefiles
Does not match the generator used previously: NMake Makefiles
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.

这里说不能匹配以前生成使用的NMake Makefiles。这是因为cmake命令执行的时候具有缓存cache的原因,解决的办法可以是删除它。

删除掉build目录下的所有文件后重新运行下面命令

cmake -DCMAKE_INSTALL_PREFIX=D:/libs/dlib -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release  -G"MinGW Makefiles" ..

生成Makefile成功后输出

-- Configuring done
-- Generating done
-- Build files have been written to: D:/development_library/dlib/dlib-19.4/build

在生成的时候还提示了没有发现CUDAcuDNN。因为我这里不需要就不做了,有需要的人可以自己下载安装(需要显卡支持)后,重新运行cmake命令。

编译

生成Makefile后,使用下面命令进行编译

mingw32-make -f Makefile	# 编译
mingw32-make -f Makefile install # 安装

安装之后可以到-DCMAKE_INSTALL_PREFIX=D:/libs/dlib指定的目录中找到对应的头文件和库文件。

Mingw编译DLib的更多相关文章

  1. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  2. Fedora 11中用MinGW编译Windows的Qt4程序(在Linux系统下编译Windows的程序)

    Ubuntu下可以直接安装: sudo apt-get install mingw32 mingw32-binutils mingw32-runtime 安装后编译程序可以: i586-mingw32 ...

  3. Windows下MinGW编译Qt4

    还真不是吹,这个问题折磨我一天……前些天转载了一篇关于<Eclipse+Qt开发环境设置>和<Eclipse+MinGW+Qt开发环境设置>两片文章,里面讲述了QT的开源版本q ...

  4. MingW编译virt-viewer

    在http://www.spice-space.org/download.html可以下载到windows版本的virt viewer virt-viewer-x86-0.5.7.msi和virt-v ...

  5. VS2008编译器编译出来的文件比mingw编译的要几乎小一半

    为什么要在VS2008中使用QT静态编译呢?很简单,因为VS2008编译器编译出来的文件比mingw编译的要几乎小一半. 好了现在我们来做些准备工作,VS2008自然要安装的,然后打上SP1的补丁.然 ...

  6. 在Windows环境下使用MinGW编译Qt 4.8.6

    1.修改环境变量工具推荐:Rapid Environment Editor.官网:http://www.rapidee.com/ 修改前请先备份当前的环境变量.然后: (1)检查系统变量path,删除 ...

  7. 使用Mingw编译wxSqlite3-3.0.5

    最近在学习wxWidgets,而且官方也出了3.0版本,貌似还不错的样子,准备做个小程序来练手.中间需要用到数据库看到很多人推荐wxSqlite3就去下来看看,以下是我使用TDM-GCC 4.8.1( ...

  8. 利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用

    将MinGW编译的openssl dll导出def和lib供MSVC使用 前面我们用mingw把openssl 编译成了动态库,得到下面2个dll文件: libeay32.dll ssleay32.d ...

  9. Windows7下使用mingw编译openssl

    Windows7下使用mingw编译openssl 首先参考这篇文章安装mingw/minsys: http://blog.csdn.net/ubuntu64fan/article/details/8 ...

随机推荐

  1. go语言之进阶篇http客户端编程

    1.http客户端编程 示例: http_server.go package main import ( "fmt" "net/http" ) //w, 给客户 ...

  2. EF和LINQ 调用存储过程

    好久没有更新文章了,最近项目比较忙都没什么时间来分享最近的问题. 今天遇到一个超级傻逼的问题.C#中调用存储过程,自己code也10来年了,这应该是很简单的问题了.今天有2个新的api,一个只有1个参 ...

  3. Java程序员须知的七个日志管理工具

    本文由 ImportNew - 赖 信涛 翻译自 takipiblog.欢迎加入翻译小组.转载请见文末要求. Splunk vs. Sumo Logic vs. LogStash vs. GrayLo ...

  4. eclipse 创建普通maven项目

  5. 【Java】PS-查看Java进程-线程数

    PS-查看Java进程-线程数 ps 线程 个数_百度搜索 查看进程的线程数命令 - CSDN博客 java命令行运行jar里的main类 - coderland - 博客园

  6. 【转】深入理解line-height

    原文: http://www.cnblogs.com/dolphinX/p/3236686.html https://www.cnblogs.com/yangjie-space/p/4858132.h ...

  7. [转]HttpWatch工具简介及使用技巧

    http://www.cnblogs.com/mayingbao/archive/2007/11/30/978530.html 一 概述: HttpWatch强大的网页数据分析工具.集成在Intern ...

  8. (转)【风宇冲】Unity3D教程宝典之AssetBundles:第一讲

    自:http://blog.sina.com.cn/s/blog_471132920101gz8z.html 原创文章如需转载请注明:转载自风宇冲Unity3D教程学院                 ...

  9. iOS开发技巧 - 使用和定制开关控件(UISwitch)

    1. 初始化加载到视图界面 (Swift) import UIKit class ViewController: UIViewController { // 1. create a property ...

  10. WinForm 之 程序退出

    一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.En ...