从头开始构建 Native Client 应用程序需要什么?我查看了文档,并摆弄了几个应用程序,但是,我现在开始制作自己的应用程序,但我没有看到任何与创建 native 客户端应用程序的基础相关的内容。
最佳答案
根据您要使用的 SDK 版本,您有多种选择。
Pepper 16 和 17:使用 init_project.py 或使用示例作为起点
如果您使用的是 pepper_16
或 pepper_17
,您会在 project_templates
中找到一个 Python 脚本 init_project.py
> 在开发工具包中。它将设置一组完整的文件(.cc、.html、.nmf),其中的注释指示您需要在何处添加代码。运行 python init_project.py -h
以查看它接受的选项。更多文档可在 https://developers.google.com/native-client/pepper17/devguide/tutorial 找到.
Pepper 18 及更新版本:使用示例作为起点
如果您使用的是 pepper_18
或更新版本,则不再包含 init_project.py
。相反,您可以从 examples
目录复制一个非常小的示例(例如,hello_world_glibc
或 hello_world_newlib
用于 C 或 hello_world_interactive
用于 C++)并将其用作起点。
完全从头开始编写
如果您想完全从头开始编写您的应用程序,请首先通过编译和运行一些示例来确保 SDK 正常工作。那么下一步就是查看类 pp::Module和 pp:Instance ,您的应用需要实现。
在 HTML 端,为 Native Client 模块编写一个带有 EMBED
元素的简单页面。然后为 loadstart
、progress
、error
、abort
、load
添加 JavaScript 事件处理程序>、loadend
和 message
并让处理程序将事件数据写入例如 JavaScript 控制台,这样就可以判断 Native Client 模块出了什么问题没有加载。 load_progress
示例展示了如何执行此操作。
接下来,创建 list 文件 (.nmf
)。从 pepper_18
开始,您可以为此使用 tools/
目录中的 generate_nmf.py
脚本。如果您想从头开始编写,这些示例提供了使用 newlib
和 glibc
(当前支持的两个标准 C 库)的示例。分别参见 hello_world_newlib/
和 hello_world_glibc/
。
如果您以前没有使用过 gcc 系列编译器,那么查看一些示例的 Makefile 以了解要使用的编译器和链接器标志也是一个好主意。建议从一开始就针对 32 位和 64 位进行编译。
关于c++ - 从零开始构建 Native Client 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9712854/