<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                PPAPI提供了C和C++兩種插件開發接口。要使用C++版本的接口,需要ppapi_cpp.lib和ppapi_cpp_objects.lib這兩個靜態庫,然而CEF的SDK里沒有這兩個庫,只能編譯CEF的源碼來得到。所以,我就編譯了CEF的源碼。 花了幾天時間,反復編譯幾次,過程比較艱辛,記錄一下。如果你參考我的過程編譯,請看完這篇文章再動手。 > foruok原創,如需轉載請關注foruok的微信訂閱號“程序視界”聯系foruok。 [https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding](https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding)這里描述了怎么從源碼編譯CEF,這是主要的參考資料。 CEF支持自動、手動兩種編譯方法,我們使用基于git的自動構建流程。 注意,必須在無墻狀態下來編譯。 # 編譯步驟 Windows系統必須是Windows 7 x64 或更高版本,x86的不支持哦。 保證已經安裝了python,并設置了環境變量。 e:/sources/CEF是我的編譯目錄,以后都以此為例來說明。 安裝過程參考了[http://www.chromium.org/developers/how-tos/build-instructions-windows](http://www.chromium.org/developers/how-tos/build-instructions-windows)和[https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding](https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding),我試驗了幾次,出了一些錯。現在,按我下面的步驟來即可: 1. 設置系統locale為English,否則可能遇到類似下圖的錯誤: ![error_unicode](https://box.kancloud.cn/2016-02-22_56caac333fcfd.jpg "") 1. 安裝VS 2013 Update 4,其他版本的VS都歇菜。安裝過程中確保選擇MFC組件(Microsoft Foundation Classes for C++) 1. Windows 10 SDK,安裝到默認路徑下。 1. 配置環境變量,使用Ninja編譯、使用VS 2013調試,按下面的命令設置環境變量(在cmd.exe內): set DEPOT_TOOLS_WIN_TOOLCHAIN=0 set GYP_GENERATORS=ninja,msvs-ninja set GYP_MSVS_VERSION=2013 1. 下載[automate-git.py](https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py)腳本文件。 1. 自動構建版本為2526的分支,用下面的命令: python e:/sources/CEF/automate-git.py –download-dir=e:/sources/CEF/2526 –branch=2526 提一下,automate-git.py會自動下載depot_tools、Chromium和CEF源碼、構建CEF的調試和發布版本、創建SDK包。SDK包在e:/sources/CEF/2526/chromium/src/cef/binary_distrib目錄下。 **特別說明**: - 如果你因為系統locale出錯,再次執行automate-git.py時,可能會遇見下面的錯誤(紅線所示): ![error_out_exsit](https://box.kancloud.cn/2016-02-22_56caac3350b7f.jpg "") 此時刪除e:/sources/CEF/2526/chromium/src/out目錄,再來一遍即可。 - VS 2013如果沒有安裝到默認目錄,也會出錯(我就是醬紫的): ![error_vcvars](https://box.kancloud.cn/2016-02-22_56caac3360e3b.jpg "") 我編譯了一天多,出了上面的錯誤。 沿著上圖出錯信息回溯,發現已經執行到automate-git.py的975行,這是最后一步了,所有中間編譯已完成,就剩打包生成發行包了。 錯誤原因如圖上標注的,找不到vcvars32.bat。跟到msvs_env.bat文件里去看,發現其中通過硬編碼的VS路徑來引用vcvars32.bat,對于VS2013,它用”%PROGRAMFILES(X86)%\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat”,我安裝到別的地方去了……還好,有一個**CEF_VCVARS**變量,設置一下就好了。使用下列命令: ~~~ set CEF_VCVARS=E:\software\VS2013_64_update4\VC\bin\vcvars32.bat ~~~ 然后我需要研究如何只生成SDK,執行“python e:/sources/CEF/automate-git.py –help”,查看幫助,發現有一個–no-build選項還有一個–force-distrib選項,還有很多,最后用下面的命令生成了SDK發行包: ~~~ python e:/sources/CEF/automate-git.py --download-dir=e:/sources/CEF/2526 --branch=2526 --no-build --no-update --force-distrib ~~~ 編譯成功后,生成的CEF SDK發行包在chromium\src\cef\binary_distrib目錄下,我這里是cef_binary_3.2526.1364.gf6bf57b_windows32.zip。 注意,這里面沒有PPAPI C++接口對應的靜態庫……但它們確實生成了,ppapi_cpp.lib和ppapi_cpp_objects.lib,在chromium\src\out\Release\obj\ppapi目錄下,拷貝到你的SDK里就可以用了。 opengl庫libGLESv2.dll和libEGL.dll也在編譯過程生成了,DLL和對應的lib文件都在chromium\src\out\Release下,也可以拷貝到SDK目錄下,PPAPI的有些示例會用到。 chromium\src\out\Release目錄下還有cefclient.exe,就是CEF SDK里那個示例,可以運行。運行后效果如下圖: ![cefclient](https://box.kancloud.cn/2016-02-22_56caac3380a68.jpg "") # 一點總結 編譯是個漫長的過程,可能遇到各種錯誤,基本找不到中文資料,Google猛搜吧…… 閑言碎語: 1. automate-git.py默認會構建debug和release兩個版本,很耗時,得十幾個小時。其實可以執行python e:/sources/CEF/automate-git.py –help查看幫助,–no-debug-build選項可以不編譯Debug版本,–no-release-build可以不編譯Release版本,只編譯一個版本,會快很多。 1. 編譯過程中出錯,再次編譯時,可以指定 –no-update選項,跳過源碼更新 1. CEF編譯時鏈接的運行庫為MT(多線程)。如果你要編譯CEF或PPAPI示例,也要在“配置屬性–>C/C++–>代碼生成–>運行庫”中設置為MT。 1. CEF編譯時定義了UNICODE和_UNICODE宏。編譯示例時最好也使用 Unicode 字符集。 相關文章參考: - [**CEF Windows開發環境搭建**](http://blog.csdn.net/foruok/article/details/50468642) - [**CEF加載PPAPI插件**](http://blog.csdn.net/foruok/article/details/50485448) - [**VS2013編譯最簡單的PPAPI插件**](http://blog.csdn.net/foruok/article/details/50485461) - [**理解PPAPI的設計**](http://blog.csdn.net/foruok/article/details/50486788) - [**PPAPI插件與瀏覽器的交互過程**](http://blog.csdn.net/foruok/article/details/50494061)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看