首页未分类 › libuv 在win10 vs各个版本编译静态库

libuv 在win10 vs各个版本编译静态库

01 环境

libuv使用git管理代码,使用gyp管理工程文件。git、python2.x必须。
环境描述:
win10x64企业版本(10.0.14393),
vs2005–vs2015,
python2.7.6,
git(version 1.9.5.chromium.6)。
git和python建议使用更高版本。
因为下载gyp管理工具需求翻墙,需要vpn。自己有美国的vps,可以自己搭建。
官网:http://libuv.org/
github源码:https://github.com/libuv/libuv

02 源码下载

命令提示符窗口输入:

03 编译源码

03.01 获取gyp工具链

命令行提示符窗口运行vcbuild.bat,将会获得gyp工具链。

这一布需要vpn翻墙。从vcbuild.bat脚本可以看到git clone https://chromium.googlesource.com/external/gyp build/gyp。gyp是从googlesource下载的。下载到当前目录的build子目录下。

03.02 指定使用visualStudio版本

从gyp_uv.py文件中,可以看到GYP_MSVS_VERSION这个环境变量。这是指定使用什么vs版本的。通过在命令行设置这个环境变量,指定使用系统那个vs版本。
在命令行提示符设置环境变量,设置2005到2015等,均可。

03.03 指定目标版本架构

从gyp_uv.py文件中,可以看到有-Dtarget_arch参数,这个是指定生成的项目是32位还是64位的。需要在命令行中指定,默认使用64位。
类似:

03.04 指定目标版本支持xp系统

如果需要支持xp系统,对于vs2012以后的版本,需要特殊指定平台工具集。即visual studio 工程的配置属性==>常规==>平台工具集选择对xp系统的支持。v140_xp(vs2015),v120_xp(vs2013),v110_xp(vs2012)。

这个属性可以在gyp文件重配置。可以配置到common.gypi中。因为每个工程都引用common.gypi。
在 common.gypi 的line86 附近加入编译对xp版本的支持。
在【’msvs_settings’: 】行前面,与msvs_settings同级。

03.05 生成vs工程文件

使用gyp_uv.py生成工程文件,生成的工程和sln文件都在当前目录。共有7个。再次生成时,会覆盖已有文件。

安装对应vs版本后,命令提示符cmd窗口运行如下命令,可生成对应版本的工程文件。

注意:
A:每次执行gyp_uv.py都会覆盖前次运行结果。
B:使用vs2015 可以通过指定v120_xp v110_xp 代替vs2013和vs2012编译。

03.06 vs编译libuv静态库

使用对应版本visual studio 打开对应 使用gyp_uv.py生成的 uv.sln 文件,选择debug或release版本,编译,会在当期的目录下,生成debug目录和release目录及对应的libuv.lib文件。
把 include 目录,和对应的libuv.lib文件拷贝到自己工程指定位置,即可以使用libub库功能。

03.07 问题

在win10x64 编译x86版本时,run-benchmarks和run-tests测试工程会报错,x64为版本没问题。
错误如下:

03.08 工程文件存档

为了避免再次翻墙,把对应的工程文件和gyp工具链保存到github上面。
地址:https://github.com/5455945/libuv
在分支b1.9.1上(https://github.com/5455945/libuv/tree/b1.9.1)。
这个分支已经包含了gyp工具链,下载下来可以直接使用gyp_uv.py生成vs工程。

发表评论