MacOS arm64平台Skia Viewer编译链接失败问题求助
问题分析
链接错误源于你禁用了libjpeg-turbo的编解码功能,但Viewer依赖的SVG模块、GM测试代码需要调用JPEG编解码接口,当前配置下这些接口的实现未被编译,导致符号缺失。
解决方案
方案一:启用libjpeg-turbo(推荐)
Skia默认依赖libjpeg-turbo处理JPEG,移除禁用参数即可让相关符号正常编译:
# 重新生成构建配置 bin/gn gen out/release --args="is_official_build=false extra_cflags_cc=[\"-frtti\"] target_cpu=\"arm64\"" # 清理旧构建文件并重新编译 ninja -C out/release clean ninja -C out/release skia ninja -C out/release viewer
方案二:保留禁用libjpeg-turbo,启用Skia内置JPEG编解码
若不想使用libjpeg-turbo,需显式开启Skia自带的JPEG编解码实现:
# 重新生成构建配置 bin/gn gen out/release --args="is_official_build=false skia_use_libjpeg_turbo_decode=false skia_use_libjpeg_turbo_encode=false skia_enable_jpeg_decode=true skia_enable_jpeg_encode=true extra_cflags_cc=[\"-frtti\"] target_cpu=\"arm64\"" # 清理旧构建文件并重新编译 ninja -C out/release clean ninja -C out/release skia ninja -C out/release viewer
方案三:跳过GM测试(无需Viewer包含测试功能时使用)
错误中的大量符号引用来自GM测试代码,添加参数跳过GM编译可规避问题:
# 重新生成构建配置 bin/gn gen out/release --args="is_official_build=false skia_use_libjpeg_turbo_decode=false skia_use_libjpeg_turbo_encode=false skia_skip_gms=true extra_cflags_cc=[\"-frtti\"] target_cpu=\"arm64\"" # 清理旧构建文件并重新编译 ninja -C out/release clean ninja -C out/release skia ninja -C out/release viewer
内容的提问来源于stack exchange,提问作者igr
相关产品推荐
相关产品推荐

