【问题标题】:On Windows, how to run Google's Native Client run outside of Chrome?在 Windows 上,如何在 Chrome 之外运行 Google 的 Native Client?
【发布时间】:2012-11-29 01:19:17
【问题描述】:

这个问题专门针对 Windows(64 位)。

here 提出了类似的问题,但答案似乎特定于 Linux(可能还有 OS X)。

非 Windows 的答案是使用 sel_ldr,但 Windows 上的 Chrome 安装中不存在此类文件。 nacl64.exe 似乎是具有相同功能的文件。这个page 提到了“NaCl 进程”,即使 Chrome 在 x64 Windows 上是 32 位进程,sel_ldr 也需要是 64 位,因此是一个单独的进程。我还看到 nacl64.exe 在我的插件加载时运行,而当我在没有加载 NaCl 插件的情况下启动 Chrome 时没有运行。

NaCl plug-in for Visual Studio 需要在 64 位窗口上运行,因此 cmets 大约在 64 位以上。

page 上,我发现了一个在 Linux 上被报告为成功的示例:

~/nacl_sdk/pepper_19/tools/sel_ldr_x86_64 -B ~/nacl_sdk/pepper_19/tools/irt_x86_64.nexe hello_x86_64.nexe

here 我发现这个例子也适用于 Linux:

/home/ubuntu/nacl_sdk/pepper_19/tools/sel_ldr_x86_32 -a -S -B /home/ubuntu/nacl_sdk/pepper_19/tools/irt_core_x86_32.nexe <plug-in path>

所以我尝试了一些以此为模型的命令,但都导致 nacl64.exe 崩溃:

<user directory>\AppData\Local\Google\Chrome\Application\23.0.1271.91>nacl64.exe -B nacl_irt_x86_64.nexe <NaCL SDK root>\vs_addin\examples\hello_nacl_cpp\hello_nacl_cpp\NaCl64\newlib\Debug\hello_nacl_cpp_64.nexe

d:\><user directory>\AppData\Local\Google\Chrome\Application\23.0.1271.64\nacl64.exe -B <user directory>\AppData\Local\Google\Chrome\Application\23.0.1271.64\nacl_irt_x86_64.nexe <NaCL SDK root>\vs_addin\examples\hello_nacl_cpp\hello_nacl_cpp\NaCl64\newlib\Debug\hello_nacl_cpp_64.nexe

d:\><user directory>\AppData\Local\Google\Chrome\Application\23.0.1271.64\nacl64.exe -a -S -B <user directory>\AppData\Local\Google\Chrome\Application\23.0.1271.64\nacl_irt_x86_64.nexe <NaCL SDK root>\vs_addin\examples\hello_nacl_cpp\hello_nacl_cpp\NaCl64\newlib\Debug\hello_nacl_cpp_64.nexe

我已经验证 hello_nacl_cpp_64.nexe 在通过网页在 Chrome 中运行时可以正常工作。

那么问题来了,在 Windows 上,如何在 Chrome 之外成功运行 Google 的 Native Client?

【问题讨论】:

    标签: google-nativeclient


    【解决方案1】:

    你可以在pepper_&lt;version&gt;/tools文件夹的NaCl SDK中找到sel_ldr.exe和非浏览器IRT。

    请注意,NaCl 应用程序无法在浏览器和 sel_ldr 中成功运行。浏览器应用程序不应该有主,命令行应用程序必须有它。命令行应用程序也不能使用 Pepper API,因为 sel_ldr 没有实现它们。

    【讨论】:

    • 谢谢! sel_ldr_x86_64.exe -B irt_core_x86_64.nexe 适用于pepper_23。我需要取消设置 NACL_EXE_STDOUT 并设置 NACLLOG 以仅查看我的 nexe 的输出,而不从加载程序中查看任何输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 2015-09-03
    相关资源
    最近更新 更多