如何使用Google Native Client(PNaCl)直接运行编译文件?它试图检查他们的documentation。它说 -
Native Client是一个沙箱,用于高效安全地在浏览器中运行已编译的C和C ++ 代码,与用户的操作系统无关。
但是在他们的文档中,他们只处理应用程序的来源。有没有办法直接运行编译代码?我想运行包含.exe
和.deb
扩展名
我不限制Native Client的答案。任何可以做这种工作的机制都适合我。
答案 0 :(得分:16)
您无法在NaCl或PNaCl中运行预编译的代码。您必须使用the SDK提供的编译器。这有三个主要原因:
以上几点要求您使用SDK提供的编译器。
技术上可以运行为其他体系结构或操作系统构建的二进制文件,因为系统是图灵完备的。这是QEMU做什么,Rosetta做了什么,Transmeta做了什么,以及Android Runtime for Chome (ARC)启用了什么。这通常需要二进制转换和所有操作系统调用的仿真。这在技术上难以实施,并且通常具有严重的性能成本。我不建议使用此选项。
答案 1 :(得分:4)
正如@JFBastien所指出的,仿真是在浏览器环境中执行预编译本机代码的唯一选择。但它仍是一种选择。根据您对性能的要求,它甚至可能是一个可行的选择。
例如,点击here以在浏览器中启动运行Windows(非常旧的版本)的模拟器。
从菜单选择中,例如,notepad.exe(使用键盘上的光标向下键)并按Enter键。你有它:在浏览器中运行的未经修改的,预编译的本机notepad.exe! (并且可能比这个操作系统是新的那天更快)。
网上有很多用Javascript编写的模拟器。运行具有可用性能甚至网络(!),图形和声音的小型Linux发行版实际上是可行的。查看OpenRISC emulator。您甚至可以运行ssh守护程序并从本地计算机登录!