mosheng 发表于 2025-8-31 13:43:52

139.0.38+g7656fe3+chromium-139.0.7258.139生成解决方案报错

本帖最后由 mosheng 于 2025-8-31 13:43 编辑

https://cef-builds.spotifycdn.com/index.html 下载下来通过`cmake -G "Visual Studio 17 2022" -A x64 ..`生成的解决方案,用 Visual Studio 打开生成的 cef.sln 文件,然后选择“生成” → “生成解决方案”
报错:
严重性      代码      说明      项目      文件      行      抑制状态      详细信息
错误      MSB3073      命令“setlocal
"C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different T:/C++/CEF3/cef_binary_139.0.38+g7656fe3+chromium-139.0.7258.139_windows64/Debug/bootstrap.exe T:/C++/CEF3/cef_binary_139.0.38+g7656fe3+chromium-139.0.7258.139_windows64/build/tests/cefsimple/Debug/cefsimple.exe
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
setlocal

错误是由于CEF项目在Windows上使用沙盒功能时,需要设置LPAC(Low Privilege App Container)权限。CMake生成的构建脚本中调用了icacls命令来设置这些权限,但是:
[*]icacls命令没有使用完整路径

[*]在Visual Studio的构建环境中,可能找不到icacls命令

[*]这导致了错误代码9009(找不到指定的程序)


解决:
T:\C++\CEF3\cef_binary_139.0.38+g7656fe3+chromium-139.0.7258.139_windows64\cmake\cef_macros.cmake

文件中的SET_LPAC_ACLS宏,将:
COMMAND "icacls" "${CEF_TARGET_OUT_DIR}" "/grant" "*S-1-15-2-2:(OI)(CI)(RX)"

改为:
COMMAND "C:/Windows/System32/icacls.exe" "${CEF_TARGET_OUT_DIR}" "/grant" "*S-1-15-2-2:(OI)(CI)(RX)"


重新编译没有报错





编译出的成品可在网站右上角官方QQ群的群共享下载

页: [1]
查看完整版本: 139.0.38+g7656fe3+chromium-139.0.7258.139生成解决方案报错