electron 编译 sqlite3指南

简介: electron 编译 sqlite3指南

一、准备

sqlite很好用,使用electron开发桌面程序,sqlite编译最容易出错

编译sqlite需要提前准备的东西,以及下载的地址:

python2.7

下载地址:https://www.python.org/downloads/

安装完配置环境变量 ,环境变量配置可自行配置

vs2015,(2015、2017都可以)

下载地址:(微软的官网,https://visualstudio.microsoft.com/zh-hans/downloads/

安装完之后,一定要安装vs2015所需的C++开发环境,这点很重要,因为要是没有这个东西,会报错,缺少v140的工具集,之所以没有选择vs2017,是由于vs201没有v140的工具集,具体sqlite为什么只能使用v140的工具集这点没有去查证。很多nodejs使用的c++包都需要

下载完安装部分所需的单个组件,如:

二、在工程的package.json中scripts命令添加

"postinstall": "electron-builder install-app-deps"

解释:

"postinstall"是npm的一个钩子,它会在你执行npm install安装完成后执行,”install-app-deps”是electron的命令,会利用”electron-builder”重新构建绑定了当下sqlite3版本的electron

三、运行这些命令

npm install sqlite3 --save
npm install node-gyp -g
npm install electron-rebuild --save
.\node_modules\.bin\electron-rebuild.cmd
cd .\node_module\sqlite3


编译完成之后,会在项目的node_modules\sqlite3\lib\binding\electron-v3.1-win32-x64\node_sqlite3.node文件

下来使用管理员模式打开cmd,运行下面命令

npm install -g windows-build-tools
查看electron版本,使用命令 electron --version
本例中electron版本为3.1.1,所以target=3.1.1
以及使用如下命令
node-gyp rebuild --target=3.1.1 --arch=x64 --target_platform=win32 --dist-url=https://atom.io/download/electron/ --module_name=node_sqlite3 --module_path=../lib/binding/electron-v3.1-win32-x64

此时可以在\sqlite3\lib\binding下,多了一个electron-v3.1-win32-x64文件夹,此文件下,就是electron所需的sqlite文件。

若是发现某个文件没有找到之类,需要,肯定是vs2015工具集问题,必须使用v140的工具集,若是需要下载windows sdk,在网络搜下载即可。

编译出来的64位的东西,打包成electron 32的位的有问题,,原因是--arch=x86,这边出了问题,网上有很多,介绍x64,x86_64,以及x86_ia32,ia32的知识,自己试着重新编译,将--arch=x86改成--arch=ia32,问题成功解决

    node-gyp rebuild --target=3.1.1 --arch=ia32 --target_platform=win32 --dist-url=https://atom.io/download/electron/ --module_name=node_sqlite3 --module_path=../lib/binding/electron-v3.1-win32-ia32

    下面是编译好的sqlite3对应的electron-v3.1-win32-ia32和electron-v3.1-win32-x64版本

    https://github.com/cxywwl1226/node_sqlite3

    交流

    我是老礼,公众号「进军全栈攻城狮」作者 ,对前端技术保持学习爱好者。我会经常分享自己所学所看的干货,在进阶的路上,共勉!

    相关文章
    |
    3月前
    |
    数据库管理
    Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
    Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
    141 0
    |
    3月前
    |
    编译器 数据处理 C++
    Visual Studio配置并编译C++环境下GDAL库、SQLite环境与PROJ库的方法
    Visual Studio配置并编译C++环境下GDAL库、SQLite环境与PROJ库的方法
    203 1
    |
    开发者 C++ 数据库管理
    SQLite3源码下载与编译(开发环境:Win10+VS2022)
    SQLite3源码下载与编译(开发环境:Win10+VS2022)
    1067 0
    |
    SQL 关系型数据库 MySQL
    本地数据库 sqlite3 编译和使用
    本地数据库 sqlite3 编译和使用
    323 0
    本地数据库 sqlite3 编译和使用
    |
    Java Linux Maven
    LINUX下载编译sqlite-jdbc的jar包
    LINUX下载编译sqlite-jdbc的jar包
    214 0
    |
    Java Linux 数据库管理
    LINUX下载编译sqlite-jdbc(支持mips64el/loongarch64的jar包下载)
    LINUX下载编译sqlite-jdbc(支持mips64el/loongarch64的jar包下载)
    255 0
    |
    Linux 数据库管理
    LINUX下载并编译sqlite
    LINUX下载并编译sqlite
    61 0
    |
    Linux
    LINUX下载编译sqlite3
    LINUX下载编译sqlite3
    60 0
    |
    SQL 数据库管理 Windows
    Windows环境VS2017,如何编译得到SQLite的sqlite3.lib文件?已知dll文件,求lib文件
    Windows环境VS2017,如何编译得到SQLite的sqlite3.lib文件?已知dll文件,求lib文件
    356 0
    |
    Java Linux Maven
    LINUX下载编译sqlite-jdbc的jar包
    LINUX下载编译sqlite-jdbc的jar包
    145 0