Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

插件开发的编译器问题? #115

Open
zxy5118 opened this issue Jun 16, 2021 · 1 comment
Open

插件开发的编译器问题? #115

zxy5118 opened this issue Jun 16, 2021 · 1 comment
Labels
dev help wanted 插件开发求助

Comments

@zxy5118
Copy link

zxy5118 commented Jun 16, 2021

开发插件的时候,可以往其中嵌入编译环境嘛?例如嵌入gcc的编译环境?

如果不能的话,可以在用户安装插件的同时,安装gcc的编译环境到用户电脑上嘛?

@Liiked Liiked added the dev help wanted 插件开发求助 label Jun 24, 2021
@Liiked
Copy link
Owner

Liiked commented Jun 24, 2021

vsc 是基于 node 的,因此整个vsc 的原生 runtime 不存在除 node 外的其他运行环境。由于整个插件体系也是基于 node 生态的,你可以理解为开发 vsc 插件即开发 npm 包,所以首先你的插件必须符合一个传统 npm 包的规范,其次还要符合 vsc 插件规范。

所以你的问题可以理解为,node 插件如何调用 C 编译环境,这部分的内容你可以参考 node 与 C 的通信规范 n-api 或 node-gyp,你可以理解这些方式会加载一个最小 gcc 的运行时,在插件安装时对插件包中的目标代码进行编译。另外 VSC 文档并不建议你在插件中使用原生模块,原因如下:

  1. 跨平台原因,包括对 linux、macOS、windows、浏览器的支持(大部分使用 JS 发开的插件也可在浏览器中运行,vsc 内核可运行在浏览器中)
  2. vsc 架构对此类插件调试支持并不到位
  3. 原生插件可能无法兼容远程开发主机

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev help wanted 插件开发求助
Projects
None yet
Development

No branches or pull requests

2 participants