Loading... # 环境准备 - [visualstudio](https://visualstudio.microsoft.com/) - python (3.6.9+) - [llvm](https://github.com/llvm/llvm-project/releases) (我下载的是[LLVM-18.1.5-win64.exe](https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/LLVM-18.1.5-win64.exe)) # 编译前准备 > 以下命令需要确保网络通畅(科学上网) > > git设置代理 > > ``` > git config --global https.proxy http://127.0.0.1:10809 > git config --global http.proxy http://127.0.0.1:10809 > git config --global http.sslVerify false > ``` 克隆代码 ``` git clone https://skia.googlesource.com/skia.git cd skia ``` 初始化依赖库 ``` python tools/git-sync-deps ``` 下载 `ninja` ``` python bin/fetch-ninja ``` 修改**gn\\BUILDCONFIG.gn**(129行左右) ``` if (target_os == "win") { # By default we look for 2017 (Enterprise, Pro, and Community), then 2015. If MSVC is installed in a # non-default location, you can set win_vc to inform us where it is. if (win_vc == "") { # 找到你的vs安装目录对着填 win_vc = "D:/Dev/VisualStudio/2022/Community/VC" } assert(win_vc != "") # Could not find VC installation. Set win_vc to your VC # directory. } if (target_os == "win") { if (win_toolchain_version == "") { # win_vc下Tools\MSVC内的文件夹名称,vs工具链版本 win_toolchain_version = "14.39.33519" } if (win_sdk_version == "") { # win sdk安装目录下10/include下的文件名,sdk版本 win_sdk_version = "10.0.22621.0" } if (clang_win != "" && clang_win_version == "") { # llvm安装路径下lib/clang下的文件名,clang版本 clang_win_version = "18" } } ``` > 如果下面编译有问题修改**gn\\toolchain\\**BUILD.gn** 45行** > > ``` > dlsymutil_pool_depth=20 # 你的cpu核心数 > ``` # 编译 > 下面的clang_win换成自己的LLVM安装目录 Debug x64静态库 ``` bin/gn gen out/debug_x64_static --args='clang_win=\"D:\SDK\LLVM\" cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"/MTd\"] is_official_build=true is_debug=false skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false skia_use_system_harfbuzz=false skia_use_icu=false' ninja -C out/debug_x64_static ``` Release x64静态库 ``` bin/gn gen out/release_x64_static --args='clang_win=\"D:\SDK\LLVM\" cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"/MT\"] is_debug=false is_official_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false skia_use_system_harfbuzz=false skia_use_icu=false skia_use_angle=true' ninja -C out/release_x64_static ``` > linux与mac下流程大体一致 > > ubuntu需要设置skia\_use\_system\_harfbuzz=false,skia_enable_fontmgr_empty=true > > bin/gn gen out/debug_x64_static --args='skia\_use\_system\_harfbuzz=false skia_enable_fontmgr_empty=true' > 如果是mac则使用下面的命名生成(is_trivial_abi设置false) > `bin/gn gen out/debug_x64_static --args='is_debug=true is_trivial_abi=false'` 最后修改:2024 年 06 月 22 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏