从零开始构建Native Client应用程序

时间:2012-03-15 01:37:11

标签: c++ scons google-nativeclient

从头开始构建Native Client应用程序需要什么?我查看了文档,并提出了几个应用程序,但是,我现在正在制作自己的应用程序,我没有看到任何与创建本机客户端应用程序的基础相关的内容。

2 个答案:

答案 0 :(得分:7)

根据您要使用的SDK的版本,您有几个选项。

Pepper 16和17:使用init_project.py或使用示例作为起点

如果您使用的是pepper_16pepper_17,则会在SDK的init_project.py中找到Python脚本project_templates。它将设置一整套文件(.cc,.html,.nmf),其中包含指示您需要添加代码的位置的注释。运行python init_project.py -h以查看它接受的选项。可以在https://developers.google.com/native-client/pepper17/devguide/tutorial找到其他文档。

Pepper 18 and newer:使用示例作为起点

如果您使用pepper_18或更新版本,则不再包含init_project.py。相反,您可以从examples目录中复制一个非常小的示例(例如,hello_world_glibchello_world_newlib表示C或hello_world_interactive表示C ++)并将其作为起点。< / p>

从头开始写作

如果您想从头开始编写应用程序,请首先通过编译和运行一些示例来确保SDK正在运行。然后,下一步是查看您的应用需要实现的类pp::Modulepp:Instance

在HTML端,编写一个包含Native Client模块的EMBED元素的简单页面。然后为loadstartprogresserrorabortloadloadendmessage添加JavaScript事件处理程序,让处理程序将事件数据写入例如JavaScript控制台,以便在Native Client模块没有加载时可以告诉出错的地方。 load_progress示例显示了如何执行此操作。

接下来,创建清单文件(.nmf)。从pepper_18开始,您可以使用generate_nmf.py目录中的tools/脚本。如果您想从头开始编写,示例提供了使用newlibglibc(目前支持的两个标准C库)的示例。分别参见hello_world_newlib/hello_world_glibc/

如果您以前没有使用过gcc-family编译器,那么查看一些示例的Makefile也是一个好主意,以查看要使用的编译器和链接器标志。建议从头开始编译32位和64位。

答案 1 :(得分:0)

最简单的方法是按照https://developers.google.com/native-client/pepper18/quick-start上的快速入门文档,特别是教程中的步骤5-7(https://developers.google.com/native-client/pepper18/devguide/tutorial),这似乎是您所要求的。