win11编译新版pdfium
准备工作
需要预先安装的有:
- vs2019(2022)(最低是2017)
- python
- depot_tools
- ninja
- vpn(ss,clash)
ss(clash)开启本地代理端口1081,ss的1081端口,全局模式,将所有流量都代理出去。
环境设置
cmd以管理员方式打开
–设置全局环境变量代理
set HTTP_PROXY=127.0.0.1:1081
set HTTPS_PROXY=127.0.0.1:1081
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2017
1、下载 depot_tools 源码;
打开https://chromium.googlesource.com/chromium/tools/depot_tools.git网站
打开git bash输入git clone https://chromium.googlesource.com/chromium/tools/depot_tools
下载完成后,将下载的 depot_tools 源码目录添加系统的环境变量中;
2、下载 PDFium 源码;
gclient config --unmanaged https://pdfium.googlesource.com/pdfium.git
gclient sync
确保下载完整。看看 pdfium\third_party\llvm-build\Release+Asserts\bin 目录下面是否有 clang-cl.exe 如果有,
代表下载完整,否则用 gclient sync 再次更新下载。
mkdir repo
cd repo
gclient config --unmanaged https://pdfium.googlesource.com/pdfium.git
gclient sync
cd pdfium
二、编译:
ninja编译:
进入 PDFium 源码目录,
1、在命令行上输入:gn args zout/VSX86,此时会弹出编译选项文本,要你输入。不输入也可以
(默认生成 x64、动态库版本。编译选项见下面三)。此时会生成 zout/VSX86 目录和一堆文件。
2、再次在命令行上输入:ninja -C zout/VSX86 pdfium,进行编译。
vs编译:
如果希望用 VS 的 IDE 来编译,可用:gn args --ide=vs zout/VSX86,来代替:gn args zout/VSX86,
这样会生成 zout/VSX86/all.sln 工程文件。用 VS 打开编译就可以了。
不我用vs编译会出现
这种情况。
**三、编译选项: **
# 是否启用 goma 支持
use_goma = false
# 是否编译为 Chrome 插件
clang_use_chrome_plugins = false
# 是否进行编译测试
pdf_is_standalone = true
# 是否启用 skia 支持
pdf_use_skia = false
pdf_use_skia_paths = false
# true 编译为 debug 版本,false 编译为 release 版本
is_debug = false
# true 编译为动态库,false 编译为静态库
is_component_build = false
# 编译为一个独立的静态库(is_component_build 必须为 false)
# pdf_is_complete_lib 为 false 时, 编译为多个静态库,true 编译为一个独立的静态库
pdf_is_complete_lib = false
# xfa 支持
pdf_enable_xfa = false
# v8 支持;启用 v8 后,编译时间会增加
pdf_enable_v8 = true
# cpu 架构;x86、x64 可选
target_cpu = "x86"
# true 将用 clang 进行编译,false 将用 VS2017 编译
is_clang = false
注意事项
如果输入gn args --ide=vs zout/VSX86报错,那肯定是set GYP_MSVS_VERSION=2017没有设置,这个设置要根据你的vs版本来设置。
如果编译的时候出错大概率是环境有问题,或者是之前的
set HTTP_PROXY=127.0.0.1:1081
set HTTPS_PROXY=127.0.0.1:1081
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2017
这些没有设置。
直接下载dll
https://gitee.com/xsgnpp/pdfium,在我gitee上就有