【发布时间】:2015-06-09 12:31:46
【问题描述】:
对于使用原生 C++ 代码的 Firefox 扩展的多平台部署,什么是正确的解决方案?是否可以将针对不同平台的所有编译二进制文件集成到一个扩展中?是否可以为当前机器下载唯一需要的二进制文件(从本机 c++ 代码编译)?
谢谢。
【问题讨论】:
-
二进制组件已停产。您必须使用 js-ctypes,并且必须为每个平台编写代码。正如我在这里所做的那样:github.com/Noitidart/Profilist/blob/2.0/modules/workers/…,这里是关于已停产二进制组件的博客文章:blog.mozilla.org/addons/2015/05/04/…
-
多平台js-ctypes的更多例子:github.com/Noitidart/jscFileWatcher/blob/master/modules/workers/…,这个很简单没有太多,所以你可能喜欢这个阅读:github.com/Noitidart/NativeShot/blob/master/modules/workers/…
-
@Noitidart 感谢您的回复。也许我错了。但是,您提供的链接没有本机 C 源代码。正如我所提到的,我的原生 c 代码已经编写好了(c 项目很大,由于某些原因,它不能移植到 JavaScript!)。我想我应该使用 'js-ctypes' 或 'system/child_process' 来为当前平台使用已编译的共享库或二进制文件。如果有一个很好的解决方案可以跳过下载用于其他平台的不相关的二进制文件和共享库,我会很高兴。即,我主要关心的是下载插件的网络流量。
-
如果您不使用 js-ctypes,您可能会遇到弃用问题。我有一种情况需要使用本机库,所以我们将在此处使用 jsctypes 导入本机文件:github.com/Noitidart/FoxSpeak/tree/master/modules
-
我会从 child_process 开始,看看你能走多远——至少你可以开始原型设计。 js-ctypes 比 IMO 复杂得多。
标签: c++ firefox firefox-addon firefox-addon-sdk