Visual Studio编译 libuv

libuv 是 Node 的新跨平台抽象层,用于抽象 Windows 的 IOCP 及 Unix 的 libev。做者打算在这个库的包含全部平台的差别性。python

特性:
    非阻塞 TCP 套接字
    非阻塞命名管道
    UDP
    定时器
    子进程生成
    经过 uv_getaddrinfo 实现异步 DNS
    异步文件系统 API:uv_fs_*
    高分辨率时间:uv_hrtime
    正在运行程序路径查找:uv_exepath
    线程池调度:uv_queue_work
    TTY控制的ANSI转义代码: uv_tty_t
    文件系统事件如今支持 inotify, ReadDirectoryChangesW 和 kqueue。很快会支持事件端口:uv_fs_event_t
    进程间的 IPC 与套接字共享:uv_write2
异步

已受支持的平台:
    Microsoft Windows 操做系统,如 Windows XP SP2。使用 Visual Studio 或 MinGW 构建
    Linux 2.6 使用 GCC 工具链
    MacOS 使用 GCC 或 XCode 工具链
    Solaris 121 或以后版本,使用 GCC 工具链
svn

如下是正题:工具

(1)采用VS2005编译( 以失败了结)
    几点经验:
    1.默认安装python时无环境变量,要在环境变量里增长 python的安装路径,path  c:\python27等,若是已经有了path名,在值的后面加“;”分号,再加c:\python27
    2.运行libuv下载目录里的 vcbuild.bat会提示 Visual Studio没有找到,是由于它只支持vs2008和vs2010.
    3.打记事本打开vcbuild.bat,增长对vs2005的支持,红色为新增长部分,此时能够生成 uv.sln文件
        @rem Look for Visual Studio 2010
        if not defined VS100COMNTOOLS goto vc-set-2008
        if not exist "%VS100COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2008
        call "%VS100COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset%
        set GYP_MSVS_VERSION=2010
        goto select-target
学习

        :vc-set-2008
        @rem Look for Visual Studio 2008
        if not defined VS90COMNTOOLS goto
vc-set-2005
        if not exist "%VS90COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-notfound
        call "%VS90COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset%
        echo Warning: building with Visual Studio 2008 is currently not supported.
        set GYP_MSVS_VERSION=2008
        goto select-target
ui

        :vc-set-2005
        @rem Look for Visual Studio 2005
        if not defined VS80COMNTOOLS goto vc-set-notfound
        if not exist "%VS80COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-notfound
        call "%VS80COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset%
        echo Warning: building with Visual Studio 2005 is currently not supported.
        set GYP_MSVS_VERSION=2005
        goto select-target
操作系统

        用VS2005编译uv.sln发现各类错误,其中有stdint.h 文件缺乏,读写锁未定义等,最后放弃线程

(2)VS2010上进行
    很折腾,要安装vs2010要很长时间,完成后再次运行vcbuild.bat会生成新的uv.sln能够顺利编译成功,但不久会发现,晓以电脑太卡了,果断卸载了2010.
进程

(3)vs2008上进行
    很顺利,电脑不卡了
事件

(4)总结:        libuv在window下编译最好用VS2008,这个过程当中要注意python、svn等软件的配置。       下一阶段将进行libuv的系统学习,欢迎交流 qq 601880671

相关文章
相关标签/搜索