Mingw编译DLib

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 tocompile 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指定的目录中找到对应的头文件和库文件。

转载于:https://www.cnblogs.com/oloroso/p/6593758.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索JavaScript的关闭功能

Discover Functional JavaScript was named one of the best new Functional Programming books by BookAuthority!“发现功能JavaScript”被BookAuthority评为最佳新功能编程书籍之一 ! A closure is an inner function that has access to the outer scope, even…

QueryList 配置curl参数 的文档位置 QueryList抓取https 终于找到了

需要设置ssl证书,或者不验证证书,例:$ql QueryList::get(https://...,[],[verify > false]);设置这个 verify > false , 所以curl的其他参数就在这里配置即可 文档在 https://guzzle-cn.readthedocs.io/zh_CN/latest/request-optio…

leetcode981. 基于时间的键值存储(treemap)

创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作: set(string key, string value, int timestamp) 存储键 key、值 value,以及给定的时间戳 timestamp。 2. get(string key, int timestamp) 返回先前调用 set(key, value, times…

物联网笔记

转载于:https://www.cnblogs.com/16-C-kai/p/6596682.html

关于大学生玩网络游戏的调查问卷

1.创建问卷,输入调查名称 2编辑问卷 3检查问卷,是否有误 4.提交并发布问卷 5分享问卷 6.问卷分析 转载于:https://www.cnblogs.com/dzw1996/p/7786754.html

java自动排序_java ArrayList自动排序算法的实现

前几天写的那个是错误的,在这里将正确的更新。。。通过实现ComParator接口,并且对Compare函数进行重写,自定义排序规则实现对ArrayList中对象的排序。。Student类定义:通过右键-》source-》自动生成Set和get方法package first;imp…

1到100的二进制编码_每天经过100天的编码后,我学到了什么

1到100的二进制编码Eleftheria Batsou is a web developer from Thessaloniki, Greece. She gave a talk at the Codegarden conference about her experience doing a solid 100 days of coding every day as part of the #100DaysOfCode Challenge.Eleftheria Batsou是来自希…

第六次 实验

转载于:https://www.cnblogs.com/P201821440005/p/10967987.html

leetcode658. 找到 K 个最接近的元素(二分法)

给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。 示例 1: 输入: [1,2,3,4,5], k4,…

du命令、df命令用法

一、du命令 [plain] view plaincopy print?[rootwc1 mysql]# du --help Usage: du [OPTION]... [FILE]... or: du [OPTION]... --files0-fromF Summarize disk usage of each FILE, recursively for directories. Mandatory arguments to long options are mandatory…

mysql 循环创建列_mysql – 查询列中的循环值

我需要创建一个查询,一次只将一列的值移动一行↑:----------------------------| anotherCOL | values_to_loop |----------------------------| 1 | 1 || 2 | 2 || 3 | 3 || 4 | 4 || 5 | 5 || 6 | 6 || 7 | 7 || 8 | 8 || 9 | 9 || 10 | 10 |--------------------…

因子个数与因子和

题目:LightOJ:1341 - Aladdin and the Flying Carpet(因子个数) Its said that Aladdin had to solve seven mysteries before getting the Magical Lamp which summons a powerful Genie. Here we are concerned about the first mystery. Aladdin was …

如何在JavaScript中直观地设计状态

by Shawn McKay肖恩麦凯(Shawn McKay) 如何在JavaScript中直观地设计状态 (How to visually design state in JavaScript) 使用状态机和状态图开发应用程序的路线图 (A roadmap for developing applications with state machines & statecharts) Why does state managemen…

SQL Server 2008 - Cannot set a credential for principal 'sa'.

很久没有用到SQL Server了,今天有幸在帮同事解决一个SQL Server数据连接的问题时突然发现我无法修改我的sa用户的密码了。过程是这样的:一开始我本地的数据库实例是Windows认证方式,我想将它改成Windows和数据库混合认证方式后用sa账户登录&a…

leetcode50. Pow(x, n)(快速幂)

实现 pow(x, n) ,即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 代码 class Solution {public double myPow(double x, int n) {long tn;return t>0?Pow(x,t):1/Pow(x,-t);//判断幂指数}public double Pow(double x, long n) {if(n…

Java DES 加解密(DES/CBC/PKCS5Padding)

/*** DES加密** param data 加密数据* param key 密钥* return 返回加密后的数据*/public static byte[] desEncrypt(byte[] data, String key, String charset) {try {Cipher cipher Cipher.getInstance("DES/CBC/PKCS5Padding");byte[] k charset null || char…

mysql 连接池 100_mysql的最大连接数默认是100_MySQL

mysql的最大连接数默认是100, 这个数值对于并发连接很多的数据库应用是远远不够的,可以把它适当调大,mysql的最大连接数默认是100, 这个数值对于并发连接很多的数据库应用是远远不够的,可以把它适当调大,whereis safe_mysqld找到s…

angular上传图片_如何使用Angular轻松上传图片

angular上传图片by Filip Jerga由Filip Jerga 如何使用Angular轻松上传图片 (How to make image upload easy with Angular) This is the second part of the tutorial on how to upload an image to Amazon S3. You can find the first part here. In this article, we will …

Java小知识-----Map 按Key排序和按Value排序

Map排序的方式有很多种&#xff0c;这里记录下自己总结的两种比较常用的方式&#xff1a;按键排序(sort by key)&#xff0c; 按值排序(sort by value)。 1、按键排序 jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求&#xff0c;向其构造方法 TreeMap(Comparator…

社区帖子全文搜索实战(基于ElasticSearch)

要为社区APP的帖子提供全文搜索的功能&#xff0c;考察使用ElasticSearch实现此功能。 ES的安装不再描述。 es集成中文分词器(根据es版本选择对应的插件版本)下载源码&#xff1a;https://github.com/medcl/elasticsearch-analysis-ik  maven编译得到&#xff1a;elasticsear…