windows中使用mingw64编译dlib的c++
Posted member
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于windows中使用mingw64编译dlib的c++的主要内容,如果未能解决你的问题,请参考以下文章
Windows下的 C++ 编译工具(MinGW-w64 + CMake)
Windows下使用mingw+cmake编译C/C++程序