如何告诉从源代码编译的Visual Studio Code在哪里找到sqlite模块?

恩沃尔瑟姆

我正在从git存储库中签出的源代码构建Visual Studio代码:

git clone https://github.com/microsoft/vscode 

我正在使用:

export NODE_OPTIONS=--max_old_space_size=2048 
./scripts/npm.sh install  --arch=armhf 
./scripts/code.sh 

我正在使用Raspbian buster在Raspberry PI 4上使用节点10.16.3

在构建过程中没有错误。

该安装程序在首次运行时会下载电子版的预编译版本。

但是,每次我尝试运行代码时,它都会启动但会出现错误:

[storage state.vscdb] open():由于错误而无法打开数据库:找不到模块'../build/Release/sqlite

如果我查看node_modules / vscode-sqlite3 / build / Release /

我可以看到:

sqlite3.a sqlite.a

对我来说,目前尚不清楚为什么电子/ vscode无法找到该库。对于任何有关如何告诉运行时在哪里寻找模块的指示,我将感激不尽。

尼比基巴巴

通过检查构建脚本并经过许多痛苦的实验,我发现并解决了导致此错误的两个问题。

  1. 保留.a静态库的事实表明binding.gypconfig.gpy和/或makefile中的某些设置是错误的,因为本机节点模块通常是带有.node扩展名的动态库。罪魁祸首似乎binding.gyp文件下面的一条条件行vscode-sqlite3 ... ["target_arch=='arm'", {"type": "static_library"}] ...

禁用该行(通过删除该行或将“ arm”更改为其他内容),然后运行:

node-gyp configure

在生成目录下重新生成config.gpy文件。然后使用以下命令构建模块:

node-gyp build

Asqlite.node将在构建/发布中生成。

  1. 不幸的是,最新的电子ABI版本很少与Node.js版本匹配。在我的配置中,电子ABI版本为72(v6.0.12),但最新的稳定Node版本适用electron-rebuild于ABI64 。因此,我们必须做一个更新sqlite.node以匹配电子版本。

为此,您必须先安装electron-rebuild(纱线添加electron-rebuild),然后通过明确提供vscode下载的电子二进制文件的版本号来运行electron-rebuild:

electron-rebuild -v 6.0.12 -m /home/dev/vscode -o vscode-sqlite3

当然,您必须声明要为其构建的特定电子版本的版本号。(请查看electron-rebuild --help选项的含义。重建二进制模块需要一些时间...)

sqlite.node然后可以将结果移到build / Release /中。目录位于vscode项目目录下。瞧,我们有适用于Raspbian的最新版本VS-Code!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何/在哪里找到要修复的Linux内核错误?

Eclipse在哪里找到javac来编译项目?

在哪里可以找到Visual Studio中安装的TypeScript版本?

如何设置Visual Studio Code来编译C ++代码?

如何告诉Visual Studio使用其他源代码目录调试到库中?

如何使用“在哪里找到” SailsJS蓝图路线?

Visual Studio代码:编译打字稿模块

如何在Visual Studio IDE中从github查看源代码,但如何使用Nuget的dll进行编译?

您如何告诉Android Studio 3.0在哪里可以找到外部ndk源文件?

Powershell如何知道在哪里找到要导入的模块?

无论如何,是否可以通过Visual Studio Code调试.NET Core源代码?

告诉ocamlbuild在哪里可以找到模块

反编译Flutter Release APK。在哪里找到源代码?

在哪里找到SaveFileDialog的选定文件路径(C#,Visual Studio)

在哪里可以找到C ++标准库中特定功能的源代码?(Visual Studio安装)

如何/在哪里找到线程被锁定的位置?

在Visual Studio 2015混合应用程序中的哪里找到cordova.js

GNU Icecat源代码。在哪里找到特定的线?

如何告诉IntelliJ IDEA在哪里找到用于sublime text 2插件开发的python包?

在哪里找到代码块Sfml图像资源

如何告诉rustc(通过货物)在哪里找到我的dll导入库

Ubuntu的源代码在哪里,如何编译?

cmake:如何告诉库在哪里找到依赖项

在哪里可以找到Visual Studio 2015的wsdl.exe?

如何使用我下载的Visual Studio编译C ++源代码

Visual Studio源代码管理选项中的“配置用户工具”按钮在哪里?

Visual Studio 2017 Professional - 无法在源代码中找到包

Visual Studio 转储分析:如何找到从源代码管理中检索源代码的命令

如何覆盖 Visual Studio Code 源代码