• nodeffi从入门到放弃(安装篇)


     

    node-ffi是什么

    node-ffi是一个node用来调用dll的库,当然还有node-ffi-napi,\`食用\`指南暂时先不贴出来,我们今天先来安装node-ffi,同时对一些常见问题进行整理

    windows安装

    node-gyp安装

    安装node-ffi前需要先安装node-gyp,这是一个极容易劝退的过程,下面请跟我一起走进这个会被逼疯的世界:

    安装windows-build-tools

    传送门

    yarn global add windows-build-tools
    // or
    npm i -g windows-build-tools

    安装完成后,打开命令行查看python版本,看看版本号是否为2.7.15,
    如果版本号不是2.7.xx的话,可以查看环境变量或则用户变量,将path下面的python版本提到靠前的位置或者加入
    image.png
    如果你不想在环境变量或则用户变量中设置,可以使用

    npm config set PYTHON %PYTHON2%
    // or
    yarn config set PYTHON %PYTHON2%
    不推荐同时使用yarnnpm, 会因为路径问题造成很多没必要的麻烦

    这个样子你就可以非常开心的在不改变自己python版本的情况下使用node-ffi,但是这种方法容易让你后期忘记自己配置了那些npm或者yarn配置导致一些未知的bug,当我说到这里,你是否应该npm config list来查看下自己配置是否有需要删除的呢?!

    安装node-gyp

    传送门
    在安装前我们先将msvs_version的版本设置为2017

    npm config set msvs_version 2017
    // or
    yarn config set msvs_version 2017

    然后我们就可以开心的安装node-gyp

    npm i -g node-gyp
    // or
    yarn global add node-gyp

    node-gyp编译包下载

    node-gyp install --dist-url=https://npm.taobao.org/mirrors/node

    当这些准备工作都做好之后,我们就可以请我们的主角node-ffi上场了

    安装node-ffi

    npm i ffi --save
    // or
    yarn add ffi --save

    一般情况下node-ffi是需要和ref放在一起食用的

    electron 安装 node-ffi

    electron安装node-ffi需要编译后才可以使用,所以需要安装electron-rebuild

    npm i electron-rebuild
    // or
    yarn add electron-rebuild

    最开始使用cnpm经常会出现各种各样的问题,最常见的问题就是不在./node_modules/.bin文件下创建electron-rebuild.bat,如果你编译node-ffi有问题的话,你可以尝试以下方法

    > cd node_modules/ffi
    > node-gyp rebuild --runtime=electron --arch=ia32 --target=2.0.18 --dist-url=https://npm.taobao.org/mirrors/atom-shell
    参数说明
    arch 编译为32位还是64位
    target electron版本号 已node_modules/electron/package.json中的版本号为准
    dist-url 下载源

    更多配置
    当然还是推荐使用node-ffi-napi毕竟兼容到node12,但是我到目前还没有安装成功过,而且也没找到原因,所以我不推荐


    分割线


    快速导读

    > npm i -g windows-build-tools // 下载windows-build-tools
    > npm config set msvs_version 2017 // 设置msvs_version,同时可以使用npm config list 查看python是否指向2.7版本
    > npm i -g node-gyp // 下载node-gyp
    > npm i ffi --save
    // electron 添加
    > npm i electron-rebuild -D
    > electron-rebuild

    问题归纳

    node.lib : fatal error LNK1106: 文件无效或磁盘已满

    删除C:\\Users\\xxxx\\AppData\\Local\\node-gyp文件夹
    然后运行node-gyp rebuild

     
    gyp info it worked if it ends with ok
    gyp info using node-gyp@7.0.0
    gyp info using node@12.13.0 | win32 | x64
    gyp info find Python using Python version 2.7.17 found at "C:\Python27\python.ex
    e"
    gyp http GET https://nodejs.org/download/release/v12.13.0/node-v12.13.0-headers.
    tar.gz
    gyp http 200 https://nodejs.org/download/release/v12.13.0/node-v12.13.0-headers.
    tar.gz
    gyp http GET https://nodejs.org/download/release/v12.13.0/SHASUMS256.txt
    gyp http GET https://nodejs.org/download/release/v12.13.0/win-arm64/node.lib
    gyp http GET https://nodejs.org/download/release/v12.13.0/win-x64/node.lib
    gyp http GET https://nodejs.org/download/release/v12.13.0/win-x86/node.lib
    gyp http 200 https://nodejs.org/download/release/v12.13.0/SHASUMS256.txt
    gyp http 404 https://nodejs.org/download/release/v12.13.0/win-arm64/node.lib
    gyp http 200 https://nodejs.org/download/release/v12.13.0/win-x86/node.lib
    gyp http 200 https://nodejs.org/download/release/v12.13.0/win-x64/node.lib

    然后再次安装ffiok

  • 相关阅读:
    约数
    质数
    回炉重造之重读Windows核心编程-018-堆栈
    回炉重造之重读Windows核心编程-017- 内存映射文件
    换电脑遇到git的一些记录
    python3之迭代器和生成器
    python3之类和对象
    python3之错误和异常
    python3之函数
    python3之流程控制
  • 原文地址:https://www.cnblogs.com/onesea/p/15879795.html
Copyright © 2020-2023  润新知