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許可下提供的內容

相關文章
相關標籤/搜索