我有一个使用 Qt-creator SDK 编写的 C++ 模块。我想将此代码移植到任何网页上运行,而不会对最终用户损害源代码。用户应该能够在任何浏览器(Chrome、Firefox、Safari、Explorer)上看到此模块的输出,而无需安装任何额外的浏览器插件。有哪些更好的选择可以实现这一目标。我用谷歌搜索了一下,发现很少有这样的选择:
- Google Native 客户端 (NaCl) - 但它仅在 Chrome 上运行。这是网络应用程序的未来吗?
- PPAPI - 不确定它是否与 NaCl 相同
- NPAPI - 几乎已弃用
- Emscripten - 它将 c++ 转换为 js。因此源代码对用户是可见的。
- 网络组装
还有其他选择可以实现我正在寻找的目标吗?如果不是我应该从上面的选项中选择哪一个!?提前谢谢了。 A
一些澄清:
- Chrome 以外的浏览器不支持 NaCl。我们(Google 的 NaCl/WebAssembly 团队)未来更加关注 WebAssembly。
- PPAPI 是 NaCl 使用的 API 集。
- NPAPI:即将退出,无论如何都需要安装插件。
- 脚本。它确实将 C++ 编译为 JS,但我不会说它向用户公开了你的源代码。通过通常的编译和优化过程,它已经发生了显着的转变,我想说它比源代码更接近机器代码。此外,我们正在为 emscripten 添加 WebAssembly 支持,以便使用相同的源代码,您可以为支持它的浏览器生成 WebAssembly,并为尚不支持的浏览器生成 asm.js。
- WebAssembly 是未来,它将满足您的所有标准,但需要注意的是,wasm 可用的浏览器 API 和功能与 JavaScript 可用的浏览器 API 和功能相同。因此,例如,您将无法无限制地访问用户的文件系统。所有 4 个主要浏览器供应商都在实现 WebAssembly,但它应该首先出现在 Chrome 和 Firefox 中,因为这些浏览器的发布时间表与各自的操作系统脱钩。
我的建议是尝试使用 emscripten 移植您的代码。您今天就可以开始使用 asm.js,当 WebAssembly 启动时,您可以用最少的额外努力来瞄准它。未来将会有其他工具链和语言支持 wasm,但今天 emscripten 确实是唯一现成的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)