windows中使用mingw64编译dlib的c++
网络上都是用Visual Studio安装的dlib, 一个visual studio 2019的安装包就30G多, 其实用mingw-w64就可以编译相关程序
安装MingW-W64
这里使用的msys2: https://www.msys2.org/
安装msys2
参照官网 比如安装位置是 c:\msys64\
使用国内镜像源
c:\msys64\etc\pacman.d\
- mirrorlist.mingw32
- mirrorlist.mingw64
- mirrorlist.msys
这三个文件中将清华源放在第一行
# the CN mirror url
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
安装mingw-w64
开始菜单中 打开msys2 minGW 64-bit
pacman -Syu
pacman -Su
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
将mingw64的gcc加入到windows环境变量
地址在C:\msys64\mingw64\bin
, 加入环境变量自行搜索
CUDA运行库
在windows平台上的mingw编译器是不支持CUDA的,所以即使你有显卡和CUDA它也不会安装CUDA版本的dlib,目前windows平台上只有visual studio是支持CUDA的。
编译dlib为c库
下载代码 并创建相关目录
cd /d d:\
git clone https://github.com/davisking/dlib.git
cd dlib
mkdir build
mkdir dist
cd build
创建编译文件
-G "MinGW Makefiles" 这个是关键,表示生成MinGW可用的Makefile文件
cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=D:\dlib\dist -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE=mingw32-make ..
不出意外, 会成功
编译 4是你的cpu核心数
mingw32-make -j4
安装
mingw32-make install
最终文件都会在d:\dlib\dist
目录
编译python的wheel文件
下面方法得到的文件无效 别试了
如果执行过上面的编译 需要自行清理build文件夹
切换到19.20分支
最新版本的python包必须使用VS编译
19.20是可以编译的, 但是在编译时会触发小红伞,可以切换到19.19
git checkout v19.20
修改源代码
setup.py 149行
minGW是没有'-A', 'X64'这些参数的,而且mingw的多线程编译应该是'-j'才对。因此将其修改如下,注释掉'-A', 'X64',改为4线程编译。
if platform.system() == "Windows":
cmake_args += ['-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_{}={}'.format(cfg.upper(), extdir)]
# if sys.maxsize > 2**32:
# cmake_args += ['-A', 'x64']
# # Do a parallel build
# build_args += ['--', '/m']
build_args += ['--', '-j4']
执行
python setup.py -G "MinGW Makefiles" bdist_wheel
python包
dist目录下dlib-19.19.0-cp37-cp37m-win_amd64.whl (3.7MB)
即是windows版本的dlib
pip install dlib-19.19.0-cp37-cp37m-win_amd64.whl
安装face_recognition
可以直接成功
pip3 install face_recognition
推荐阅读
ubuntu 20.04 静态编译360的pika
pika: [链接] 是一个类似redis的No-SQL, 基于RocksDB支持按照key range 来搜索KEY, 并且是排序返回的redis的SCAN是无法满足这点的
member赞 1阅读 2.2k
又一款眼前一亮的Linux终端工具!
今天给大家介绍一款最近发现的功能十分强大,颜值非常高的一款终端工具。这个神器我是在其他公众号文章上看到的,但他们都没把它的强大之处介绍明白,所以我自己体验一波后,再向大家分享自己的体验。
良许赞 6阅读 1.9k
FastAPI性能碾压Flask?
不止一次的听过,FastAPI性能碾压Flask,直追Golang,不过一直没有测试过,今天闲着没事测试一下看看结果。不知道是哪里出了问题,结果大跌眼镜。
二毛erma0赞 2阅读 10.3k评论 3
Linux终端居然也可以做文件浏览器?
大家好,我是良许。在抖音上做直播已经整整 5 个月了,我很自豪我一路坚持到了现在【笑脸】最近我在做直播的时候,也开始学习鱼皮大佬,直播写代码。当然我不懂 Java 后端,因此就写写自己擅长的 Shell 脚本。但...
良许赞 1阅读 2.1k
Python之如何优雅的重试
为了避免偶尔的网络连接失败,需要加上重试机制,那么最简单的形式就是在对应的代码片段加一个循环,循环体里使用异常捕获,连接成功时退出循环,否则就重复执行相关逻辑,此时修改之后的函数f如下
Harpsichord1207赞 3阅读 7.4k
基于 EKS Fargate 搭建微服务性能分析系统
近期 Amazon Fargate 在中国区正式落地,因 Fargate 使用 Serverless 架构,更加适合对性能要求不敏感的服务使用,Pyroscope 是一款基于 Golang 开发的应用程序性能分析工具,Pyroscope 的服务端为无状态服务且性...
亚马逊云开发者阅读 7.9k
ChatGPT的开源平替,终于来了!
最近这段时间,一个号称全球最大ChatGPT开源平替项目Open Assistant引起了大家的注意。这不最近还登上了GitHub的Trending热榜。[链接]根据官方的介绍,Open Assistant也是一个对话式的大型语言模型项目,可以理解...
CodeSheep赞 2阅读 1.1k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。