cefsharpchromium-embedded

CEF ARM64 build compilation failing for CEF V119


I am currently attempting to create an ARM64 build of CEF 119 on my Windows 11 machine. I have successfully created the x32 and x64 binaries of this repo / CEF version. I have previously successfully created an ARM64 build of CEF 120 (when it was the last official release) on the same machine.

Here is my update.bat file for creating the ARM64 build

set CEF_ENABLE_ARM64=1
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome chrome_pgo_phase=0
set GN_ARGUMENTS=--ide=vs2022 --sln=cef --filters=//cef/*
set CHROMIUM_SHA=55e15c8
python3 ..\automate\automate-git.py --download-dir=c:\code\chromium_git --depot-tools-dir=c:\code\depot_tools --arm64-build --checkout=%CHROMIUM_SHA% %*

The CHROMIUM_SHA is a commit on the 6045 CEF branch using Chromium 119.0.6045.159

Here is the error

-------- Running "ninja -C out\Debug_GN_arm64 cefclient" in "c:\code\chromium_git\chromium\src"...
ninja: Entering directory `out\Debug_GN_arm64'
[91291/91291] LINK cefclient.exe cefclient.exe.pdb
FAILED: cefclient.exe cefclient.exe.pdb
..\..\third_party\llvm-build\Release+Asserts\bin\lld-link.exe "/OUT:./cefclient.exe" /nologo -libpath:..\..\third_party\llvm-build\Release+Asserts\lib\clang\18\lib\windows "-libpath:../../../../../../Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.39.33519/ATLMFC/lib/ARM64" "-libpath:../../../../../../Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.39.33519/lib/ARM64" "-libpath:../../../../../../Program Files (x86)/Windows Kits/10/lib/10.0.22621.0/ucrt/arm64" "-libpath:../../../../../../Program Files (x86)/Windows Kits/10/lib/10.0.22621.0/um/arm64" /MACHINE:ARM64  "/PDB:./cefclient.exe.pdb" "@./cefclient.exe.rsp"
lld-link: error: undefined symbol: __declspec(dllimport) glHint
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glGetError
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glClearColor
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glPixelStorei
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glGenTextures
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glBindTexture
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glTexParameteri
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glTexEnvf
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glDeleteTextures
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glClear
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glMatrixMode
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glLoadIdentity
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glViewport
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glPushAttrib
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glBegin
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glColor4f
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glVertex2f
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glEnd
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glPopAttrib
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: undefined symbol: __declspec(dllimport) glRotatef
>>> referenced by ../../cef/tests/cefclient/browser/osr_renderer.cc
>>>               obj/cef/cefclient/osr_renderer.obj

lld-link: error: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "C:\code\automate\automate-git.py", line 1357, in <module>
    run(command + build_path + target, chromium_src_dir, depot_tools_dir,
  File "C:\code\automate\automate-git.py", line 66, in run
    return subprocess.check_call(
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\code\depot_tools\bootstrap-2@3_11_6_chromium_30_bin\python3\bin\Lib\subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ninja', '-C', 'out\\Debug_GN_arm64', 'cefclient']' returned non-zero exit status 1.

I do not quite understand what this error means. Am i missing a library? I do see the ARM64 libs that are mentioned in the error in their respective folders. Any help would be appreciated.


Solution

  • I just ran into the same issue while building CEF 88 for ARM64.

    According to this commit, it seems like we can only build cefsimple while compiling CEF for ARM64 on Windows for now.

    We can't build cefclient.exe for ARM64 due to missing OpenGL library support so build cefsimple.exe instead.

    I managed to build successfully by adding the argument --build-target=cefsimple.