C++ 从无到有构建本机客户端应用程序

C++ 从无到有构建本机客户端应用程序,c++,scons,google-nativeclient,C++,Scons,Google Nativeclient,从头开始构建本机客户端应用程序需要什么?我已经查阅了文档,并用了几个应用程序,然而,我现在正在着手制作我自己的应用程序,而且我没有看到任何有关创建本地客户端应用程序的基础。 最简单的方法是遵循快速入门文档,特别是教程的步骤5-7()。这似乎就是您要问的问题。根据您想要使用的SDK版本,您有几个选项 Pepper 16和17:使用init_project.py或使用示例作为起点 如果您使用的是pepper\u 16或pepper\u 17,您将在SDK的project\u模板中找到Python脚本

从头开始构建本机客户端应用程序需要什么?我已经查阅了文档,并用了几个应用程序,然而,我现在正在着手制作我自己的应用程序,而且我没有看到任何有关创建本地客户端应用程序的基础。

最简单的方法是遵循快速入门文档,特别是教程的步骤5-7()。这似乎就是您要问的问题。

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

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

如果您使用的是
pepper\u 16
pepper\u 17
,您将在SDK的
project\u模板中找到Python脚本
init\u project.py
。它将设置一组完整的文件(.cc、.html、.nmf),其中包含注释,指示需要添加代码的位置。运行
python init_project.py-h
查看它接受哪些选项。有关其他文档,请访问

Pepper 18及更新版本:以一个示例作为起点

如果您使用的是
pepper_18
或更新版本,则不再包括
init_project.py
。相反,您可以从
examples
目录复制一个非常小的示例(例如,
hello\u world\u glibc
hello\u world\u newlib
用于C++或
hello\u world\u interactive
用于C++),并将其作为起点

完全从头开始写作

如果您想完全从头开始编写应用程序,请首先通过编译和运行几个示例来确保SDK正常工作。接下来一个好的步骤是查看应用程序需要实现的类和

在HTML端,为本机客户端模块编写一个包含
EMBED
元素的简单页面。然后为
加载开始
进度
错误
中止
加载
加载结束
消息
添加JavaScript事件处理程序,并让处理程序将事件数据写入,例如JavaScript控制台,因此,如果本机客户端模块未加载,则可以判断出出现了什么问题。
load\u progress
示例演示了如何执行此操作

接下来,创建清单文件(
.nmf
)。从
pepper_18
及以后,您可以使用
tools/
目录中的
generate_nmf.py
脚本执行此操作。如果您想从头开始编写,这些示例提供了使用
newlib
glibc
(目前支持的两个标准C库)的示例。分别参见
hello\u world\u newlib/
hello\u world\u glibc/


如果您以前没有使用过gcc系列编译器,那么最好查看Makefile中的一些示例,以了解要使用的编译器和链接器标志。建议从一开始就编译32位和64位。

关于pepper_16和pepper_17的说明很有趣,我将阅读更多关于这方面的内容。然而,他们为pepper_18删除它是很有趣的,他们一定用init_project.py为旧的SCons构建系统生成的构建脚本替换了它。在Pepper 18中,构建系统被makefiles取代,并且考虑到使用示例作为起点实际上比使用init_project.py更容易,因此该脚本被删除而不是重写。