我正在尝试使用最新的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服务器日志,但我没有看到任何错误。还有其他地方我应该寻找记录错误吗?
答案 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://flags
并启用了Native Client
和Native Client GDB-based debugging
。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服务器。
另外,你在使用什么操作系统?
〜主要