我不熟悉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應用程序中正確使用它並調用它的過程是什麼?
我手邊沒有URL,但是Google的網頁上有關於如何爲NaCL編譯C的信息。你將不得不以這種方式編譯你的庫。你不能按照編譯的方式使用它。此外,NaCL代碼無法對系統調用操作系統。沒有文件I/O,沒有fork/exec,沒有其他任何類似的東西。 NaCL的目的是加快處理速度並利用已有的C代碼,而不是讓Chrome應用程序對基礎系統有額外的訪問權限。 – 2014-11-09 15:04:59
@MarcRochkind謝謝你的信息。我找到了你提到的關於編譯的信息。你能澄清'無文件I/O'部分嗎? NaCL確實擴展了我認爲可以訪問本地文件系統的HTML5存儲API。所以說我們可以做文件I/O是安全的,我們只需要通過nacl_io並替換庫源文件中的原始文件讀/寫調用? – user2666425 2014-11-10 20:53:59
對不起。我的意思是說通過直接調用操作系統(Linux)沒有文件I/O。當然,Chrome API調用也可以。 – 2014-11-10 21:54:48