Zeke Xiao

Zeke Xiao

github

Windows 下で Pdfium をコンパイルする

代理配置#

gclient はプロキシの設定をサポートしていないため、ゲートウェイプロキシが設定されていない場合は、Windows では Mellow、Linux では QV2ray を使用できます。
git などのプロキシを解除することを忘れないでください。なぜなら、gclient は git を使用するからです。

ツールのダウンロード#

  • ツール
    python2、gn、ninja、gclinet、git を直接 prebuilt からダウンロードして環境変数に追加します。
  • VS
    vs installer で C++ デスクトップ開発(+ATLMFC)と Windows プラットフォーム開発を選択します。環境変数は追加しても追加しなくても構いませんが、追加しない場合は VS の標準のコマンドプロンプトを使用します。
  • デバッグツール

SDK デバッグツールもインストールする必要があります。Windows 10 SDK が Visual Studio インストーラーを介してインストールされた場合は、[コントロールパネル]→[プログラム]→[プログラムと機能]→[Windows ソフトウェア開発キット]→[変更]→[変更]→[デバッグツール for Windows] を選択してインストールできます。または、スタンドアロンの SDK インストーラーをダウンロードして、それを使用してデバッグツールをインストールすることもできます。


コードの取得#

mkdir repo   
cd repo   
gclient config --unmanaged https://pdfium.googlesource.com/pdfium.git   
gclient sync   
cd pdfium  

ビルドファイルの生成#

  • gn の設定ファイル
gn args out/Debug #ninja  
gn gen --ide=vs out\Debug #vs  
  • 内容
use_goma = false  # Googlers only. Make sure goma is installed and running first.  
is_debug = true  # Enable debugging features.  

# Set true to enable experimental Skia backend.  
pdf_use_skia = false  
# Set true to enable experimental Skia backend (paths only).  
pdf_use_skia_paths = false  

pdf_enable_xfa = true  # Set false to remove XFA support (implies JS support).  
pdf_enable_v8 = true  # Set false to remove Javascript support.  
pdf_is_standalone = true  # Set for a non-embedded build.  
is_component_build = false # Disable component build (Though it should work)  

clang_use_chrome_plugins = false  # Currently must be false.</pre>  

修正#

  • ERROR at //build/config/win/visual_studio_version.gni:27:7: Script returned non-zero exit code.exec_script("../../vs_toolchain.py", ["get_toolchain_dir"], "scope")

解決策:set DEPOT_TOOLS_WIN_TOOLCHAIN=0を使用してローカルの Win Toolchian を使用します。効果がない場合は、手動で環境変数に追加してコンソールを再起動します。

  • ERROR at //build/timestamp.gni:31:19: Script returned non-zero exit code.

解決策:cmd を使用してgclient syncを再度実行します。おそらく powershell のコマンドの問題です。

  • Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Win/clang-n344329-9284abd0-6.tgz <urlopen error [Errno 11004] getaddrinfo failed>

解決策:DNS のハイジャックの問題かもしれません。ip.sb で commondatastorage.googleapis.com の IP を検索し、それをC:\Windows\System32\drivers\etc\hostsに追加します。

ビルド#

ninja -C out/Debug pdfium_test 

テストの実行#

image

image

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。