CEF 119版本ARM64编译失败求助
解决CEF 119 ARM64编译链接OpenGL符号缺失问题
这些链接错误是因为cefclient的OSR渲染模块依赖OpenGL函数,但当前构建配置未自动链接Windows ARM64版本的opengl32.lib库。CEF 120的构建配置已修复该问题,但119版本需要手动处理。
解决方案
方法一:修改cefclient的GN构建配置
- 打开
c:\code\chromium_git\chromium\src\cef\tests\cefclient\BUILD.gn文件 - 找到
executable("cefclient")节点下Windows平台的libs数组 - 添加
"opengl32.lib"到数组中,修改后示例:
if (is_win) { libs += [ "comctl32.lib", "dbghelp.lib", "delayimp.lib", "gdi32.lib", "imm32.lib", "opengl32.lib", // 新增该行 "kernel32.lib", "ole32.lib", "oleaut32.lib", "shell32.lib", "user32.lib", "uuid.lib", "version.lib", "winmm.lib", ] }
- 保存文件后重新执行编译命令:
ninja -C out\Debug_GN_arm64 cefclient
方法二:通过GN_DEFINES添加链接参数
修改update.bat中的GN_DEFINES,加入额外链接参数:
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome chrome_pgo_phase=0 extra_ldflags="/DEFAULTLIB:opengl32.lib"
重新执行update.bat生成新的构建配置后,再进行编译。
说明
- 你能看到ARM64库但仍报错,是因为链接器未将
opengl32.lib纳入cefclient的链接依赖,而非库文件不存在。 - CEF 120版本的构建配置已默认处理该依赖,因此之前编译ARM64版本时未出现此问题。
内容的提问来源于stack exchange,提问作者Spartan 117
相关产品推荐
相关产品推荐

