Finn
Finn

Reputation: 682

Error installing Chromium on Windows: assert vc_lib_um_path

I'm trying to install Chromium on my Windows machine. I'm closely following the instructions linked to from the Chromium project site. I tried running the command gn gen out/Default, but got the following error message (with some paths anonymized):

Traceback (most recent call last):
  File "C:/path/to/chromium/src/build/toolchain/win/setup_toolchain.py", line 292, in <module>
    main()
  File "C:/path/to/chromium/src/build/toolchain/win/setup_toolchain.py", line 284, in main
    assert vc_lib_um_path
AssertionError
ERROR at //build/toolchain/win/BUILD.gn:408:30: Script returned non-zero exit code.
  win_64bit_toolchain_data = exec_script("setup_toolchain.py",
                             ^----------
Current dir: C:/path/to/chromium/src/out/Default/
Command: C:/path/to/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe C:/path/to/chromium/src/build/toolchain/win/setup_toolchain.py "C:\Program Files (x86)/Microsoft Visual Studio/2017/Enterprise" "C:\Program Files (x86)\Windows Kits\10" "C:\WINDOWS\Sysnative;C:\WINDOWS/SysWOW64" win x64 environment.x64
Returned 1 and printed out:

vc_bin_dir = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.15.26726\\bin\\HostX64\\x64"
include_flags_I = "\"/I..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.15.26726\\ATLMFC\\include\" \"/I..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.15.26726\\include\" \"/I..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17763.0\\ucrt\" \"/I..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17134.0\\shared\" \"/I..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17134.0\\um\" \"/I..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17134.0\\winrt\" \"/I..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17134.0\\cppwinrt\""
include_flags_imsvc = "\"-imsvc..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.15.26726\\ATLMFC\\include\" \"-imsvc..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.15.26726\\include\" \"-imsvc..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17763.0\\ucrt\" \"-imsvc..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17134.0\\shared\" \"-imsvc..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17134.0\\um\" \"-imsvc..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17134.0\\winrt\" \"-imsvc..\\..\\..\\..\\..\\..\\..\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17134.0\\cppwinrt\""
vc_lib_path = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.15.26726\\lib\\x64"
vc_lib_atlmfc_path = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.15.26726\\ATLMFC\\lib\\x64"

See //build/toolchain/win/BUILD.gn:458:1: whence it was called.
win_64bit_toolchains("x64") {
^----------------------------
See //BUILD.gn:61:1: which caused the file to be included.
group("gn_all") {
^----------------
Traceback (most recent call last):
  File "C:/path/to/chromium/src/build/toolchain/win/setup_toolchain.py", line 292, in <module>
    main()
  File "C:/path/to/chromium/src/build/toolchain/win/setup_toolchain.py", line 284, in main
    assert vc_lib_um_path
AssertionError

Looking at the source for setup_toolchain.py (where the error was), I think the problem is on these lines:

for path in env['LIB'].split(';'):
  if os.path.exists(os.path.join(path, 'User32.Lib')):
    vc_lib_um_path = os.path.realpath(path)
    break

After adding some print statements, it appears that the loop is checking if the following paths exist:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\ATLMFC\lib\x64\User32.Lib
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x64\User32.Lib
C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x64\User32.Lib
C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\User32.Lib
User32.Lib

None of these paths do exist. I don't really have a good enough understanding of Windows, Visual Studio, or C to know what User32.Lib means. Is it something that Visual Studio should have added somewhere? Or when I installed the Windows 10 SDK, should a file have been generated somewhere? Is there something I can do to solve this problem?

I'm struggling to figure out what could go wrong and cause this problem, and any help would be greatly appreciated.

Upvotes: 4

Views: 1820

Answers (1)

Trannin
Trannin

Reputation: 11

Looks like GN does not find the required runtime requirements. The scripts are somewhat fragile on this. In my case, I installed visual 2017 and 2019, this issue happens. So, I uninstall visual 2019 and it works well. Reverify the runtime specs (SDK, VS version, paths etc). https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md#markdown-header-windows-setup

Upvotes: 1

Related Questions