release说明

原文地址:https://developer.chrome.com/native-client/sdk/release-noteshtml

如下发行说明中的​​日期表示Chrome和NaCl SDK达到金丝雀状态的时间。稳定释放一般是6周后。html5

Chrome/Pepper 49

  • 从SDK中删除了基于GCC的newlib工具链。这些已被nacl-clang工具链取代,该工具链还生成静态连接的体系结构特定的nexe文件。
  • gtest / gmock再也不做为预先构建的库提供。这符合正常的gtest / gmock使用指南。但愿使用gtest / gmock的项目如今必须添加显式包含路径并在本地编译gtest-all.cc。

Chrome/Pepper 45(2015年7月10日)

Pepper

  • 稳定的UDP套接字多播API(PPB_UDP_SOCKET 1.2)。

Chrome / Pepper 43(2015年4月3日)

PNaCl

  • 如今默认生成C11 / C ++ 11 acquirereleaseacq_rel内存顺序。浏览器内的Chrome 42转换器支持它们,所以SDK能够生成它们。
  • 在处理16位加载/存储时 修复ARM上代码生成错误bswap,致使NaCl验证失败。
  • PNaCl如今基于LLVM 3.6。若是您使用GDB 在浏览器中使用调试元数据调试PNaCl BC文件,请记住SDK版本的调试信息X仅与chrome版本中的PNaCl转换器兼容X。bitcode调试元数据格式从LLVM 3.5更改成3.6。若是您须要调试使用XChrome版本Y(with X != Y)运行的SDK版本构建的应用程序,仍然能够这样作。只需使用SDK版本X中离线pnacl-translate工具将pexe转换为nexe, 而不是使用浏览器中的转换器(版本Y)。
  • PNaCl对使用libstdc ++ 4.6做为C ++标准库的支持已弃用,将在下一版本中删除。PNaCl使用了libc ++(这是更新的,目前基于LLVM 3.6)做为Pepper 33以来的默认值。
  • PNaCl的实验性Subzero转换器可用于Chrome版本43中的x86-32 NaCl,标志后面。要试一试,请使用--enable-pnacl-subzero命令行标志运行Chrome ,而后使用optlevel 0 NaCl清单选项。应用程序启动时间应比之前基于LLVM的optlevel 0 模式快几倍,具备类似的代码质量。请注意,x86-32 NaCl须要32位Chrome。在Windows上,它还须要32位Windows操做系统,但64位Linux操做系统能够运行x86-32 NaCl。若是您尝试一下,请向咱们发送有关native-client-dev的反馈。咱们正在努力改进并添加新目标。

Pepper

  • 开发预览中的UDP套接字多播API(PPB_UDP_SOCKET 1.2)。
  • 开发预览中的硬件视频编码器API(PPB_VIDEO_ENCODER 0.1)。

Chrome / Pepper 42(2015年2月20日)

SDK

  • 该SDK如今包含的实验版本i686-nacl-clang, x86_64-nacl-clang以及arm-nacl-clang还有clang++ 等价物。这些工具链基于与PNaCl相同的LLVM版本,但可用于生成NaCl .nexe文件,而不是在.pexe本地或使用GCC工具链进行翻译 。

NaCl

  • x86 NaCl验证器接受来自FMA3扩展的指令以及AVX2指令(除外VGATHER)。

PNaCl

  • PNaCl支持C11 / C ++ 11个存储器命令acquirerelease和 acq_rel。它用于升级全部访问seq_cst。它仍是升级 consumeacquire(没有编译器目前实现consume),并 relaxedseq_cst(谨慎地避免平台的差别,因为外的薄空气问题)。默认状况下,SDK当前已禁用此功能,所以用户计算机上安装的浏览器内转换器有时间得到此支持。开发人员能够经过将-pnacl-memory-order-seq-cst-only=false标志传递给它来打开它 opt
  • PNaCl处理嵌套的结构类型扩展,这使它能够更好地支持非C语言,如Rust。
  • PNaCl将64位以上的许多整数运算分解为单独的64位运算。使用大的连续位域时常常会遇到这种状况。

Chrome / Pepper 41(2015年1月9日)

NaCl

  • x86 NaCl验证器接受来自AVX1扩展的指令。

PNaCl

  • PNaCl如今基于LLVM 3.5。

Chrome / Pepper 40(2014年11月7日)

  • VideoDecoder如今稳定,请参阅SDK示例pepper_canary/examples/api/video_decode

Chrome / Pepper 39(2014年9月26日)

NaCl

Pepper

Chrome / Pepper 38(2014年8月15日)

PNaCl

  • 因为转换器和连接器的验证缓存致使编译速度提升。
  • SIMD向量混洗的性能改进。

Chrome / Pepper 37(2014年6月20日)

PNaCl

  • 翻译时间提升2-10%。
  • 改进了矢量加载/存储和随机播放性能。

Pepper

  • 媒体流输入支持。
  • Compositor API。
  • 开发预览中的硬件解码API。
  • 在开发预览中同步API。

SDK

Chrome / Pepper 36(2014年5月9日)

PNaCl

  • 经过便携式SIMD向量支持用于SIMD向量的LLVM向量 和GCC向量。请注意,这仍然是早期版本,预计Chrome版本37的性能能够接受。将在之后的版本中添加更多SIMD指令。

Chrome / Pepper 35(2014年3月31日)

PNaCl

  • 将LLVM升级到3.4版。
  • 翻译如今使用动态负载平衡,使翻译时间更快。
  • 能够经过Chrome加载具备调试信息的不稳定pex(即未定型),简化了使用PNaCl的调试。请参阅调试PNaCl pexes

Chrome / Pepper 34(2014年2月20日)

Pepper

  • 文件系统如今能够从JavaScript传递到NaCl。结果 pp::Var将包含pp::Resource能够提供给 pp::FileSystem构造函数的结果。
  • 新的音频和视频输入API已添加为开发接口。有关详细信息,请参阅 pp :: MediaStreamAudioTrack和 pp :: MediaStreamVideoTrack

PNaCl

  • 平行翻译:即便使用较旧的pex,也至少快1.7倍。
  • bitcode中的智能缩写:使用pnacl-compress工具减小20%的二进制大小。

Chrome / Pepper 33(2013年12月16日)

Portable Native Client

  • PNaCl的默认C ++标准库如今是LLVM本身的libc ++,基于LLVM 3.3。此库如今支持可选setjmplongjmp异常处理( 有关详细信息,请参阅公告)。

SDK

  • nacl_io库如今包含一个FUSE安装。
  • 在SDK示例中,common.js如今加载构建的nexes / pex的Release版本(默认状况下)。
  • “ make debug”和“ make run”已在Mac上修复。

默认状况下在Chrome 31中启用了PNaCl(2013年11月12日)

  • 默认状况下,Chrome 31中启用了Portable Native Client(PNaCl)。有关NaCl和PNaCl之间差别的详细信息,请参阅 NaCl和PNaCl。
  • PNaCl ABI已从Chrome 30中的预览版更改。pepper_30必须使用pepper_31软件包或更高版本从新编译使用SDK中的软件包构建的Pexe模块。做为通常规则,咱们始终建议在Native Client SDK中使用最新的稳定包构建应用程序。从Chrome 31发布开始,PNaCl ABI将保持稳定。
  • Chrome / Pepper 31版本中的其余更改:linux

    • Pepper API的更新,包括套接字和网络支持
    • 改进了nacl_io库中的套接字支持

PNaCl in Chrome 30 Dev channel(2013年8月1日)

  • Portable Native Client(PNaCl)目前可在Chrome 30中预览(目前在Dev频道中)。使用PNaCl构建的应用和网站能够在Chrome 30中运行而无需显式标记。
  • 有关 开发PNaCl的信息,请参见Portable Native Client简介。即将推出更多文档。
  • 请注意,PNaCl bitcode ABI在官方公开发布以前可能仍会发生变化; 若是您正在开发基于PNaCl的应用程序,请确保使用最新版本的Native Client SDK构建代码。
  • 更新:默认状况下,在M30的测试版或稳定版中未启用PNaCl。

PNaCl(2013年5月15日)

  • Portable Native Client(PNaCl)目前可用于Chrome 29或更高版本的开发人员预览。
  • 要生成PNaCl可执行文件(.pexe),必须在当前pepper_canary包中使用pnacl工具链。Chrome 29不支持早期版本的pnacl工具链生成的.pexe文件(即便用pepper_28bundle或更早版本编译的可执行文件)。
  • 要使用PNaCl模块运行应用程序,您必须使用--enable-pnacl标记(对于Chrome应用程序)或--enable-nacl 标记(对于其余应用程序)启动Chrome 29 。
  • 当您使用--enable-pnacl旗帜启动Chrome时,Chrome会在后台加载PNaCl翻译器。启动Chrome后等待一分钟,而后检查chrome:// nacl以验证是否已加载转换程序。
  • PNaCl转换器目前可用于32位x86,64位x86和ARM体系结构。
  • PNaCl应用程序必须使用newlib C库(尚不支持glibc和动态连接)。
  • 中间表示(IR)格式能够在PNaCl释放以前改变。若是是这样,您将须要在新的SDK包中使用pnacl工具链从新编译您的应用程序。

Pepper 27(2013年4月12日)

Pepper 27软件包具备大量已直接集成到SDK中的新库。web

  • naclports项目中的许多库已直接合并到Native Client SDK中。这些库包括:chrome

    • 图像编码/解码:jpeg,tiff,png,webp
    • 多媒体:openal,freealut,ogg,vorbis
    • XML解析:tinyxml,xml2
    • 杂项:zlib(通用压缩),freetype(字体渲染),lua(Lua解释器)

    这些库位于ports/lib,而且头文件位于 ports/include编程

  • httpfsnacl_io库中的文件系统如今默认将内容缓存在内存中; 这大大提升了性能。
  • 对于使用glibc工具链编译的应用程序,dlopen()如今可用于打开未在应用程序的Native Client清单(.nmf)文件中指定的共享库。例如,这容许应用程序下载共享对象,而后用于dlopen()访问共享对象。该dlopen示例已被修改以演示此功能:reverse.cc内置于共享对象(.so)文件中,该文件使用httpfsmount进行下载和打开。

例子

  • 每一个示例如今都有一个index.html文件,而不是与使用不一样工具链和配置构建的NaCl模块相对应的多个HTML文件。默认状况下,大多数示例使用一个工具链(newlib)和一个配置(Debug)构建。若是您使用多个工具链或配置创建一个例子,你能够指定使用的查询参数在Chrome运行哪一个版本tcconfig。例如,假设您从本地服务器localhost:5103提供示例,则能够经过在Chrome中指定如下URL来运行在发行版配置中使用glibc工具链构建的示例的版本: http://localhost:5103/index.html?tc=glibc&config=Release。有关如何加载不一样NaCl模块的其余信息index.html,请参阅common.js每一个示例中的文件。

构建工具和工具链

  • 常见的makefile(包括tools/common.mk)如今能够处理位于应用程序根目录以外的源文件。例如,应用程序的Makefile能够指定要编译的源文件,例如 ../../some/other/place.cpp

Pepper 26(2013年3月29日)

Pepper 26软件包在nacl_mounts库中包含一个新的HTTP文件系统类型(已重命名为nacl_io),对示例Makefile进行了更改,一个简单的新3D示例和一个线程文件IO示例。windows

构建工具和工具链

  • Makefile已经发生了重大变化:api

    • 如今,在许多公共文件(tools/*.mk)中指定了构建命令,这些文件包含在示例中的Makefile中。
    • 默认状况下,make会显示构建步骤的简化列表(例如CC newlib/Debug/hello_world_x86_32.o),而不是实际的构建命令。要查看实际的构建命令,请运行make V=1
    • 默认状况下,大多数示例使用一个工具链(newlib)和一个配置(Debug)构建。要使用不一样的工具链或配置构建示例,请使用make参数TOOLCHAIN=<x>或 运行CONFIG=<y>。您还能够运行make all_versions来构建包含全部工具链的示例。
  • 头文件已移出工具链。如今,全部工具链都与主机构建共享同一组头文件。之前主机和NaCl构建使用不一样的标头,这可能会致使构建问题。

  • nacl_mounts库已重命名为nacl_io,并已使用新类型的httpfs进行扩展,可用于经过HTTP读取URL。详情见include/nacl_io/nacl_io.h,还有 hello_nacl_io例子。

例子

  • 添加了一个新示例hello_world_instance3d来演示简化的3D应用程序。
  • file_io例子已被重写,作一个线程全部的文件操做。该示例演示了如何使用MessageLoop API并阻止线程上的回调。

常规

  • 旧捆绑包(pepper_20及更早版本)已从Native Client SDK Manifest中删除,而且将再也不由该naclsdk 命令更新。

Pepper 25(2012年12月21日)

Pepper 25软件包具备ARM工具链,用于为ARM设备构建Native Client模块,两个新的Pepper API(包括MessageLoop API,容许您在后台线程上进行Pepper调用),两个新库(nacl_mounts,提供虚拟文件系统)您可使用标准C文件操做,使用ppapi_main(可使用简单的ppapi_main函数实现Native Client模块),以及两个演示如何使用nacl_mounts和ppapi_main库的新示例。浏览器

构建工具和工具链

  • SDK包含一个新工具链,用于为ARM设备构建Native Client可执行文件(.nexe文件)。缓存

    • 目前,ARM工具链只能用于编译使用newlib C库的模块。您不能使用ARM工具链来编译使用glibc库的模块。
    • ARM工具链在目录中 pepper_25/toolchain/<host>_arm_newlib。bin子目录包含compiler(arm-nacl-gcc),连接器(arm-nacl-g++)和工具链中的其余工具。
    • 看一下hello_world示例,了解如何使用ARM工具链。去examples/hello_world,跑make。构建完成后,newlib / Debug和newlib / Release子目录将包含x86-32,x86-64和ARM目标架构的.nexe文件,以及引用这三个.nexe的Native Client清单(.nmf文件)。文件。
  • SDK中包含的简单Web服务器httpd.py已从examples/目录移动到tools/目录。在Windows上,您能够运行httpd.cmd(在examples/目录中)以启动服务器。

PPAPI

Pepper 25包含两个新的API:

  • 控制台API可让你的模块日志消息在Chrome浏览器的JavaScript控制台。
  • 消息循环 API可让你的模块使PPAPI在后台线程调用。一旦建立了消息循环资源,将其附加到线程并运行它,就能够将工做发布到线程,包括异步操做的完成回调。有关如何使用MessageLoop API的C ++示例,请参阅pepper_25/include/ppapi/utility/threading/simple_thread.h。请注意,若是不建立和使用消息循环,则没法在后台线程上进行异步PPAPI调用。

SDK包括两个新库:

  • nacl_mounts库提供了一个虚拟文件系统在给定的目录树,你的模块可“安装”。文件系统能够是如下几种类型之一:

    • “memfs”是一个内存文件系统,
    • “dev的”是与各公用事业节点(例如,一个文件系统/dev/null, /dev/console[0-3]/dev/tty),和
    • “html5fs”是一个持久性文件系统。

    在模块中安装文件系统后,可使用标准C库文件操做:fopen,fread,fwrite,fseek和fclose。如何执行这些操做取决于文件系统的类型(例如,对于html5fs,操做使用Pepper FileIO API执行)。有关能够装入的文件系统类型的列表,请参阅include / nacl_mounts / nacl_mounts.h。有关如何使用nacl_mounts的示例,请参阅examples / hello_nacl_mounts。请注意,html5fs受限于与Chrome中持久性本地文件IO相同的约束(例如,在使用html5fs文件系统以前,必须启用本地文件IO)。

  • ppapi_main库提供了一个熟悉的C语言编程环境简化了氯化钠模块的建立。使用此库,您的模块能够有一个名为ppapi_main()的简单入口点,它与标准的C main()函数相似,带有argc和argv []参数。您的模块也可使用标准C函数,如printf(),fopen()和fwrite()。有关详细信息,请参阅include / ppapi_main / ppapi_main.h。有关如何使用ppapi_main的示例,请参阅examples / hello_world_stdio。

新库的头文件位于include/目录中,源文件位于src/目录中,编译库位于lib/ 目录中。

例子

  • SDK包含两个新示例:

    • hello_nacl_mounts说明了如何经过使用nacl_mounts库在Native Client模块中使用标准C库文件操做。
    • hello_world_stdio说明了如何使用ppapi_main()函数实现Native Client模块,以及如何经过使用nacl_mounts和ppapi_main库在模块中写入STDOUT和STDERR。此示例使新用户能够轻松地开始使用Native Client,方法是让他们开始在熟悉的C环境中进行更改。
  • 除了少数例外,每一个示例的Makefile如今构建每一个示例的如下版本:

    • glibc工具链:x86目标架构的32位和64位.nexes
    • newlib工具链:用于x86目标体系结构的32位和64位.nexes,以及用于ARM体系结构的ARM .nexe
    • pnacl工具链:.pexe(随后将其转换为x86-32,x86-64和ARM体系结构的.nexes)
    • 托管工具链:.so或.dll(在Chrome中做为Pepper插件执行)
  • 此外,每一个版本都内置在Debug和Release配置中。
  • 每一个示例的Makefile包含两个新目标:make RUN和 make LAUNCH。这些可互换的目标启动本地服务器和Chrome实例以运行示例。关闭Chrome实例后,本地服务器也会关闭。
  • hello_world_stdio示例包含一个简化的Makefile,它只列出源依赖项,并在单独的文件(common.mk)中调用构建规则。

Pepper 24(2012年12月5日)

Pepper 24软件包包含一个名为PNaCl的新实验工具链(“Native Native Client”的缩写),一个用于Windows SDK的新库(pthreads-win32),以及一个容许应用程序指定的Pepper 3D上下文属性的扩展列表GPU偏好低功耗或性能。

构建工具和工具链

  • SDK包含一个名为PNaCl的新实验工具链(发音为“pinnacle”)。PNaCl工具链生成与体系结构无关的可执行文件(.pexe文件)。Chrome还没有直接支持.pexe文件,但若是您想体验PNaCl的早期预览,则工具链中包含一个将.pexe文件转换为特定于体系结构的.nexe文件的工具。看一下hello_world示例,了解如何构建.pexe文件并将其转换为多个.nexe文件。请注意,PNaCl目前仅限于newlib C标准库 - 若是您的应用程序使用glibc,则没法使用PNaCl构建它。
  • create_nmf.py脚本使用ELF头(而不是文件名)来肯定.nexe文件的体系结构。这意味着您能够更改.nexe文件的名称,而且create_nmf.py仍然能够为您的应用程序生成相应的Native Client清单文件。

例子

  • SDK示例如今使用四个工具链构建:glibc和newlib工具链,实验性PNaCl工具链以及开发机器上的托管工具链。在每一个工具链构建中,每一个示例还构建调试版和发布版。
  • 示例Makefile使用依赖项(.d)文件来启用增量构建。
  • pong示例已通过清理和修改,以便更顺畅地运行。绘图功能如今设置为Flush()回调,它容许尽量快地进行2D绘图。

PPAPI

  • 在建立3D渲染上下文时,上下文的属性列表 能够指定是否更喜欢GPU的低功耗或性能。能够在集成GPU上建立具备低功率偏好的上下文; 能够在离散GPU上建立具备性能偏好的上下文。

Windows SDK

  • Windows SDK包含pthreads-win32库,以帮助从win32代码移植。在将模块开发为Pepper插件(.dll)时,可使用此库。有关其余信息,请参阅pepper_24 / include / win / pthread.h和pepper_24 / src / pthread / README。
  • 更新实用程序naclsdk.bat在从具备空格的路径运行时起做用。

Pepper 23(2012年10月15日)

Pepper 23软件包包括对Mac和32位Windows上的nacl-gdb调试器的支持,在Linux上启用托管开发的资源,以及使SDK示例符合Chrome Web Store清单文件格式的第2版的更改。

工具

  • NaCl的gdb调试器如今适用于全部系统(在Mac,Windows和Linux)。
  • SDK更新实用程序的输出已简化。运行该命令时naclsdk list,该实用程序会为每一个可用的包显示一行,I若是您的系统上已安装了该包,则使用“ ” 注释,*若是该包具备可用的更新,则注释为“ ” 。要查看有关捆绑包的完整信息,请使用该命令naclsdk info <bundle>(例如,naclsdk info pepper_28)。

Linux SDK

  • 使用Linux SDK的开发人员如今拥有资源,包括预构建的库和示例Makefile,这使得使用本机C / 更容易将模块构建为Pepper插件(有时称为“可信”或“进程内”插件) C ++编译器在他们的开发系统上。实质上,这使得开发Native Client模块的过程分为两步:

    1. 使用系统的C / C ++编译器将模块构建到共享库(.so文件)中。使用正常开发环境中的工具测试和调试.so文件。
    2. 使用SDK中的一个Native Client工具链(nacl-gcc或nacl-g ++)中的编译器将模块构建到.nexe文件中。使用nacl-gdb测试和调试.nexe文件。

    这个两步开发过程有许多好处 - 特别是,您可使用编译器,调试器,分析器和您已经熟悉的其余工具。可是要记住一些潜在的问题:

    • Chrome为受信任的插件和Native Client模块使用不一样的线程模型。
    • 某些操做(如特定于平台的库调用和系统调用)在可信开发期间可能会成功,但在Native Client中会失败。

    如下是可用于将模块构建为Pepper插件的资源:

    • 头文件在 pepper_23/include
    • 源文件在 pepper_23/src
    • 预建的库在 pepper_23/lib

    您如今能够在SDK中构建和运行大多数示例做为Pepper插件。

    • 查看示例Makefile或make在示例目录中运行,以查看用于构建模块做为Pepper插件的命令和标志。
    • make LAUNCH在示例目录中运行以查看如何使用该 --register-pepper-plugins参数在Chrome中加载Pepper插件。请注意,在运行此命令以前,必须设置CHROME_PATH环境变量并启动 本地服务器

例子

  • 在Linux和Windows系统上,如今大多数示例都使用三个工具链构建:Native Client glibc和newlib工具链,以及主机系统上的本机工具链。在主机系统上使用本机工具链构建的模块只能做为Pepper插件运行。
  • SDK中的全部示例如今都符合Chrome Web Store 清单文件格式的第2版 。默认状况下,使用清单文件格式版本2的应用程序应用严格的 内容安全策略,其中包括对内联JavaScript的限制。此限制禁止内联<script>块和内联事件处理程序(例如<button onclick="...">)。有关清单文件格式的版本1和版本2之间的更改列表,以及使用版本1的应用程序的支持计划,请参阅清单版本

PPAPI

Pepper 22(2012年8月22日)

Pepper 22捆绑包包括一个命令行调试器,用于在Windows上启用托管开发的资源 ,以及对示例Makefile的更改(每一个示例如今都构建了调试和发布版本)。

工具

  • SDK如今包含一个命令行调试器,可用于调试Native Client模块。有关如何使用此调试器的说明,请参阅使用nacl-gdb进行调试。目前,nacl-gdb仅适用于64位Windows,64位Linux和32位Linux系统。将很快添加对Mac和32位Windows系统的支持。

Windows SDK

  • 使用Windows SDK的开发人员如今可使用其开发系统上的本机C / C ++编译器将模块构建为Pepper插件(有时称为“可信”或“进程内”插件)。实质上,这使得开发Native Client模块的过程分为两步:

    1. 使用系统的C / C ++编译器将模块构建到DLL中。使用正常开发环境中的工具测试和调试DLL。
    2. 使用SDK中的一个Native Client工具链(nacl-gcc或nacl-g ++)中的编译器将模块构建到.nexe中。使用nacl-gdb测试和调试.nexe。

    这个两步开发过程有许多好处 - 特别是,您可使用编译器,调试器,分析器和您已经熟悉的其余工具。可是要记住一些潜在的问题:

    • 一些经常使用于Native Client的库可能没法在Windows上轻松构建。
    • 您可能须要付出额外的努力来获取源代码以使用多个编译器进行编译,例如Microsoft Visual Studio和GCC。
    • Chrome为受信任的插件和Native Client模块使用不一样的线程模型。
    • 某些操做(如特定于平台的库调用和系统调用)在可信开发期间可能会成功,但在Native Client中会失败。

    如下是可用于将模块构建到DLL中的资源:

    • 头文件在 pepper_22\include
    • 源文件在 pepper_22\src
    • 预建的库在 pepper_22\lib
  • Visual Studio加载项将在不久的未来推出,配置包括Pepper插件和NaCl模块的平台。

注意:也能够在Mac和Linux系统上将模块构建为可信插件,但这样作须要更多工做,由于SDK还没有包含适用于Mac和Linux系统的上述资源(库源文件和预构建库) 。要在Mac和Linux系统上构建和调试受信任的插件,您须要获取Chromium代码,而后按照Mac说明 或Linux说明进行操做。未来,SDK将包括用于在Mac和Linux以及Windows上进行托管开发的资源。

例子

  • SDK中的每一个示例如今都构建了调试版和发布版。和之前同样,大多数示例还构建newlib和glibc版本,这意味着每一个示例如今有四个版本。查看示例中的Makefile,查看用于调试版和发行版的编译器标志。有关这些标志的说明,请参阅针对不一样开发方案的编译标志
  • 已将注释添加到common.js中,并在全部示例中使用。common.js中的JavaScript插入一个<embed>元素,在每一个示例的网页中加载NaCl模块,附加事件监听器以监视模块的加载,并实现handleMessage()以响应从NaCl模块发送到的消息。 JavaScript方面的应用程序

PPAPI

CC-By 3.0许可下提供的内容

相关文章
相关标签/搜索