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

相關文章
相關標籤/搜索