2014-11-09 57 views
2

我不熟悉Chrome应用程序开发和Native Client/PNaCL管道。我对在Chrome应用程序中使用现有C代码/库的过程感到困惑。常见问题和NaCL官方文档表明,使用现有代码很容易,也是开发Chrome应用程序的优势之一。如何将现有C库与Chrome Native Client一起使用?

但是,还提到了nacl-ports,这是在Native Client应用程序中使用的移植C库的官方列表。

如果我使用了一些随机C库,那么在我的Chrome应用程序中实际使用它的过程是什么?这个问题很愚蠢,但我对这个过程感到困惑。我是否必须使用NaCL编译器重新编译源代码?在哪里可以找到这个SDK?

这个FAQ还提到像fork,文件I/O这样的东西在库中是不允许的,所以我将不得不重写任何代码来做这些事情,这是否正确?底线:我有一个现有的C语言库。在Chrome应用程序中正确使用它并调用它的过程是什么?

+0

我手边没有URL,但是Google的网页上有关于如何为NaCL编译C的信息。你将不得不以这种方式编译你的库。你不能按照编译的方式使用它。此外,NaCL代码无法对系统调用操作系统。没有文件I/O,没有fork/exec,没有其他任何类似的东西。 NaCL的目的是加快处理速度并利用已有的C代码,而不是让Chrome应用程序对基础系统有额外的访问权限。 – 2014-11-09 15:04:59

+0

@MarcRochkind谢谢你的信息。我找到了你提到的关于编译的信息。你能澄清'无文件I/O'部分吗? NaCL确实扩展了我认为可以访问本地文件系统的HTML5存储API。所以说我们可以做文件I/O是安全的,我们只需要通过nacl_io并替换库源文件中的原始文件读/写调用? – user2666425 2014-11-10 20:53:59

+0

对不起。我的意思是说通过直接调用操作系统(Linux)没有文件I/O。当然,Chrome API调用也可以。 – 2014-11-10 21:54:48

回答

2

简短的回答是,你将不得不用NaCl C编译器重新编译你的库。

您可能想要看看naclports:此存储库包含许多通用C库到Native Client的端口。您可以更容易地浏览源码here

至于文件I/O,我们经常建议在移植现有代码时使用nacl_io库。这提供了一个POSIX接口(例如fopen/fclose/fread等)。当使用nacl_io时,许多移植的库不需要修改。

相关问题