样品不适用于Google NaCl rev 18

时间:2012-03-10 20:59:26

标签: google-nativeclient

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

上的说明操作

我从他们的网站下载了naclsdk工具,运行了update,并获得了pepper_18文件夹。

我将NACL_SDK_ROOT设置为pepper_18文件夹,进入'examples'并运行make。一切似乎都很好。

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

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

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

3 个答案:

答案 0 :(得分:2)

检查版本不匹配

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

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

您可以点击Chrome右上角的扳手图标,然后选择工具 - >来找到它。 JavaScript控制台。

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

在JavaScript控制台中,您还可以检查NaCl模块的嵌入元素。例如,如果嵌入标记有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窗口非常重要;否则它实际上没有重新启动。

答案 1 :(得分:1)

我讨论了一些问题,如果他们帮助别人我会记录这些问题:

  • 被忽视,制造'这些例子(从提问者的描述中得到了一些线索)。
  • Chrome不允许我运行非商店Chrome应用。去了chrome://flags并启用了Native ClientNative Client GDB-based debugging
  • JavaScript控制台表示,#/ debug /下的demo的nmf文件丢失了。我更改了make config以基于this构建Debug而不是Release。
  • Chrome控制台抱怨NativeClient: NaCl module load failed: ServiceRuntime: failed to start; NaCl's GDB debug stub requires --no-sandbox flag on Windows. See crbug…。尝试使用--no-sandbox从cmd运行Chrome。这导致警告You are using an unsupported command-line flag: --nosandbox. Stability and security will suffer.上述错误消失了,但示例仍然无法运行 - 没有用户界面。
  • 返回chrome://flags并停用Native Client GDB-based debugging

然后大多数例子都有效。 Google Drive演示抱怨Error: must be run as a packged app.

答案 2 :(得分:0)

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

另外,你在使用什么操作系统?

〜主要