美文网首页程序员
node源码系列----编译nodejs-v16

node源码系列----编译nodejs-v16

作者: potenstop | 来源:发表于2020-11-04 18:26 被阅读0次

    提前准备

    系统window10
    安装vs2019(必须)
    安装python2.7或者2.8 python3会有问题

    下载node源码(version:16.0)

    git clone --depth=1 https://github.com/nodejs/node.git
    cd node
    

    编译

    必须管理员身份打开cmd,进到node项目目录下执行 vcbuild release进行编译,需要等个十几分钟。

    vcbuild release
    
    image.png

    如果出现报错是 Could not find NASM, install it or build with openssl-no-asm. See BUILDING.md,查了下BUILDING.md,总结了下,这里有三种方式 如果指令集是AVX-512需要安装gas(2.26以上) 和nasm(2.11.8以上);如果指令集是AVX2需要安装gas(2.23以上) Xcode llvm nasm ;上面两个都不选,可以加参数跳过openssl-no-asm,我选择了跳过。命令换成vcbuild release openssl-no-asm就ok了。

    OpenSSL asm support
    
    OpenSSL-1.1.1 requires the following assembler version for use of asm
    support on x86_64 and ia32.
    
    For use of AVX-512,
    
    * gas (GNU assembler) version 2.26 or higher
    * nasm version 2.11.8 or higher in Windows
    
    AVX-512 is disabled for Skylake-X by OpenSSL-1.1.1.
    
    For use of AVX2,
    
    * gas (GNU assembler) version 2.23 or higher
    * Xcode version 5.0 or higher
    * llvm version 3.3 or higher
    * nasm version 2.10 or higher in Windows
    
    Please refer to
     <https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_ia32cap.html> for details.
    
     If compiling without one of the above, use `configure` with the
    `--openssl-no-asm` flag. Otherwise, `configure` will fail.
    

    源码的目录说明

    • benchmark : 性能测试代码
    • deps:nodejs依赖 的工具包。包含 v8、http_parser、opensslzlib、zlib、uv。
    • doc:文档
    • lib:核心模块js代码
    • src:C++源代码
    • test:测试代码
    • tools:编译时用到的工具

    相关文章

      网友评论

        本文标题:node源码系列----编译nodejs-v16

        本文链接:https://www.haomeiwen.com/subject/uicgvktx.html