2

我正在尝试使用最新的 Google NaCl SDK。按照https://developers.google.com/native-client/pepper18/devguide/tutorial上的说明进行操作

我从他们的网站下载了 naclsdk 工具,运行更新,得到了一个 pepper_18 文件夹。

我将 NACL_SDK_ROOT 设置为 pepper_18 文件夹,进入“示例”并运行 make。一切似乎都编译得很好。

我启动了 Chrome,查看了 about: flags 和 about: plugins,并验证了 NaCl 已启用。我安装了 SDK 示例应用程序(来自:https ://developers.google.com/native-client/pepper18/sdk/examples ),效果很好。

然后我尝试运行本地构建和托管的示例,转到http://localhost :5301。HTML 加载正常,但 NaCl 内容不加载。在 hello world 示例中,它永远显示“状态:正在加载...”。

我仔细检查了 HTTP 服务器日志,没有看到任何错误。还有其他地方我应该寻找记录的错误吗?

4

3 回答 3

2

检查版本不匹配

在 Chrome 中导航到 about:version 并检查 Chrome 的主要版本是否至少是您用于构建示例的 Pepper 版本。

检查 Chrome 中的 JavaScript 控制台是否有任何错误

您可以通过单击 Chrome 右上角的扳手图标并选择工具 -> JavaScript 控制台来找到它。

检查 NaCl 模块以获取更多信息

在 JavaScript 控制台中,您还可以检查 NaCl 模块的 embed 元素。例如,如果嵌入标签有id="nacl_module",您可以通过键入来检查它

theModule = document.getElementById('nacl_module');

theModule.lastError;

检查 Chrome 的输出到 stdout/stderr

在 Mac 或 Linux 上,从终端启动 Chrome 并查看控制台上的输出。例如,在 Mac 上,你通常会去

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-nacl

在 Windows 上,如果从命令提示符启动,Chrome 不会写入终端。为此,您需要通过设置环境变量 NACLLOG、NACL_EXE_STDOUT 和 NACL_EXE_STDERR 从 Chrome 重定向 stdout/stderr。将它们指向不同的文件,例如,

NACLLOG = c:\my_project\nacl.log

NACL_EXE_STDOUT = c:\my_project\nacl_stdout.log

NACL_EXE_STDERR = c:\my_project\nacl_stderr.log

然后(重新)启动 Chrome(确保这些环境变量有效)。

连接调试器

https://developers.google.com/native-client/pepper18/beta-docs/debugging上提供了有关使用调试支持(目前只有 64 位 Windows 和 64 位 Linux)的说明。

重新启动 Chrome 意味着关闭所有窗口

在为 Native Client 开发时,通常会重新启动 Chrome。关闭所有 Chrome 窗口很重要;否则它实际上并没有重新启动。

于 2012-03-11T00:49:09.540 回答
1
于 2014-02-05T20:27:02.167 回答
0

您确认您已从示例文件夹运行 httpd.py 吗?此脚本创建可以运行应用程序的 localhost:5103 服务器。

另外,您使用的是什么操作系统?

~主要

于 2012-03-12T13:18:02.670 回答