libuv是Node.js中的异步事件处理框架。它来源于libev,然而libev只能运行于Unix-like系统上。为了能够使Node.js运行在Windows/Unix-like系统上,libuv因此产生了。
Windows下编译libuv
1, 从https://github.com/joyent/libuv下载libuv的源代码,本文基于V0.11.1版,解压缩。
2,安装git客户端,且添加到环境变量中
3,执行vcbuild.bat脚本。脚本会调用git命令下载gyp。
p.s. 我在编译过程中遇到了死循环,“Import error: no module named gyp_uv”错误。解决方案为:修改vcbuild.bat,寻找%PYTHON% gyp_uv ... ,修改为%PYTHON% gyp_uv --no-parallel。
VS中使用libuv
1, 假设libuv头文件所在目录为LIBUV_INCLUDE, libuv.lib所在的目录为LIBUV_LIB
2, 把LIBUV_INCLUDE, LIBUV_LIB分别添加到头文件包含目录和库包含目录中
3,另外在“配置属性”->“链接器”->“输入”->“附加依赖项”, 输入libuv.lib ws2_32.lib psapi.lib iphlpapi.lib
4,保证运行时库与编译libuv时采用的运行时库一致
测试
若可以正常编译,执行,应该没什么大问题。
另外, libuv文档可以参考其src目录中的uv.h,也可以参考:http://nikhilm.github.com/uvbook
Windows下编译libuv
1, 从https://github.com/joyent/libuv下载libuv的源代码,本文基于V0.11.1版,解压缩。
2,安装git客户端,且添加到环境变量中
3,执行vcbuild.bat脚本。脚本会调用git命令下载gyp。
p.s. 我在编译过程中遇到了死循环,“Import error: no module named gyp_uv”错误。解决方案为:修改vcbuild.bat,寻找%PYTHON% gyp_uv ... ,修改为%PYTHON% gyp_uv --no-parallel。
VS中使用libuv
1, 假设libuv头文件所在目录为LIBUV_INCLUDE, libuv.lib所在的目录为LIBUV_LIB
2, 把LIBUV_INCLUDE, LIBUV_LIB分别添加到头文件包含目录和库包含目录中
3,另外在“配置属性”->“链接器”->“输入”->“附加依赖项”, 输入libuv.lib ws2_32.lib psapi.lib iphlpapi.lib
4,保证运行时库与编译libuv时采用的运行时库一致
测试
#include <stdio.h>
#include <uv.h>
int main()
{
uv_loop_t *loop = uv_loop_new();
printf("Now quitting.\n");
uv_run(loop, UV_RUN_DEFAULT);
return 0;
}
若可以正常编译,执行,应该没什么大问题。
另外, libuv文档可以参考其src目录中的uv.h,也可以参考:http://nikhilm.github.com/uvbook