libuv windows 下编译及使用出现的问题(异步IO)

1. 下载源码:http://dist.libuv.org/dist/

    我下载的是 v1.8.0 版本,打开可看见四个文件,如下:

    说明:.tar.gz 版本的是可以在Linux和Windows下编译的源码文件,以 .exe 结尾的是安装文件,Windows下根据自己的需要选择。但是要强调的是,.exe 结尾的程序安装以后在 vs2008 等较低级版本的VS上使用时,虽然可以编译过去,但运行时往往会出现缺少运行时库。这个时候要安装 microsoft visual c++ 2015 RC redistributable(x86或x64) ,自己在网上下载。但有时会出现安装失败,应该是系统缺少补丁包。所以我下载了 libuv-v1.8.0.tar.gz 用 vs2008 来编译。

2. 解压后,打开 vcbuild.bat 文件,删除到只剩 vs2008,如果用别的版本的VS,根据自己的需要删除。

3. 在cmd窗口中运行 vcbuild.bat 文件。就出现了vs2008的项目文件,用vs2008打开编译即可。

4. 使用时出现libuv的链接错误:就像下面这样(一般不止是这样)

    libuv.lib(util.obj) : error LNK2001: 无法解析的外部符号 __imp__GetUserProfileDirectoryW@12 

   等等,这是由于 libuv 运行时必须的库没有在程序中添加,只需要在相应的 .cpp 文件中添加如下:

   #pragma comment(lib,"ws2_32.lib")
   #pragma comment(lib,"libuv.lib")
   #pragma comment(lib, "IPHLPAPI.lib")
   #pragma comment(lib, "Psapi.lib")
   #pragma comment(lib, "Userenv.lib")

说明:如果不行,可能还需要添加别的库文件。

http://blog.csdn.net/lc250123/article/details/54135496

原文地址:https://www.cnblogs.com/findumars/p/7461250.html