当前位置: 首页 > news >正文

网站开发工程师要考什么证天津百度推广排名

网站开发工程师要考什么证,天津百度推广排名,做破解软件网站赚广告费,怎么建自己的手机网站Linux CEF(Chromium Embedded Framework)源码下载编译 背景 由于CEF默认的二进制分发包不支持音视频播放,需要自行编译源码,将ffmpeg开关打开才能支持。这里介绍的是Linux平台下的CEF源码下载编译过程。 前置条件 下载的过程非…

Linux CEF(Chromium Embedded Framework)源码下载编译

背景

由于CEF默认的二进制分发包不支持音视频播放,需要自行编译源码,将ffmpeg开关打开才能支持。这里介绍的是Linux平台下的CEF源码下载编译过程。

前置条件

下载的过程非常艰辛,因为硬性要求比较高。

  • 16GB RAM (推荐 32GB+ )
  • 120GB SSD硬盘空闲空间起步(避免机械硬盘)
  • 100Mbps带宽(包括代理带宽)以及100G以上的代理流量

这里额外说明一下,下载过程总是失败,大概率原因是因为网络的问题,尤其是网络带宽和代理带宽。这里为什么要单独提代理带宽呢,因为公司有提供代理服务,但是只有10Mbps,所以会导致下载超时,服务端关闭连接。

注意,由于一些因素,下载代码的环境是基于WSL,编译的时候是在UOS V20 1050系统上,但总体差异不大,相关路径会有区别,仍有参考价值。

接下来开始下载CEF的代码

下载

创建目录结构

首先,先创建目录结构,最终的目录结构如下:

~/CEF/automate/automate-git.py   <-- CEF build scriptchromium_git/cef/              <-- CEF source checkoutchromium/src/            <-- Chromium source checkoutupdate.[bat|sh]   <-- Bootstrap script for automate-git.pydepot_tools/        <-- Chromium build tools

可以使用以下命令,创建目录

mkdir CEF && cd CEF && mkdir automate && mkdir chromium_git

终端设置代理

这一步非常重要,因为需要让终端走代理,才能正常下载代码

设置终端代理

export http_proxy=127.0.0.1:7890
export https_proxy=127.0.0.1:7890

通常情况下,这样就可以了,但由于公司的代理问题,设置了代理之后,bitbucket.org域名无法访问,所以我这里将bitbucket.org域名排除在外,这一步因人而异,但基本是不需要这一步的。

export no_proxy=localhost,bitbucket.org

验证代理是否设置成功

leoya@leoya-PC:~$ curl -I https://chromium.googlesource.com
HTTP/1.1 200 Connection establishedHTTP/2 200 
content-security-policy: script-src 'nonce-WfQMl6EHcID6PtyTna5LNQ' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';object-src 'none';base-uri 'self';report-uri https://csp.withgoogle.com/csp/gerritcodereview/1
content-type: text/html; charset=utf-8
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 0
date: Fri, 30 Jun 2023 02:04:17 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000

这里通过curl去获取响应信息,能获取到状态码200或者304,即说明访问正常。可以额外对bitbucket.org也测试一下,如果访问失败,那说明需要将它排除在代理规则内,通过上述方法或者代理软件(如clash)设置代理规则为直连即可。

设置git代理

git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890

下载脚本

在CEF根目录下,下载depot_tools,并配置环境变量

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=/home/leoya/CEF/depot_tools:$PATH

下载automate-git.py脚本,这里需要在CEF/automate目录下

cd automate/
wget https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py

创建 ~/CEF/chromium_git/update.sh脚本

#!/bin/bash
python3 ../automate/automate-git.py --download-dir=/home/leoya/CEF/chromium_git --depot-tools-dir=/home/leoya/CEF/depot_tools --no-distrib --no-build

执行脚本

设置权限并执行

chmod 755 update.sh
./update.sh

接下来就是无尽的等待。

在这里插入图片描述

这里要特别注意depot_tools的更新进度,每次执行脚本的时候,它都会先更新depot_tools,如果更新状态过慢,可能网络有问题。

下载cef仓库的时候一般是没什么问题的。

这里最关键的是下载chromium源码的环节,因为脚本执行中断往往就是在这个环节。因为网络稳定性、下载速率等问题,导致出错。

在这里插入图片描述

当你看到Still working on字样的时候,恭喜你,你已经迈过了最艰难的环节,接下来就是下载终端,重试的成本也比较低,因为不用重新下载chromium源码。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下来见证下载成功的时刻!!!

在这里插入图片描述

报错信息总结

以下原因解释不一定正确,仅供参考
1.

[1:38:14] error: RPC failed; curl 56 GnuTLS recv error (-9):Error decoding the received TLS packet.[1:30:14] fatal:the remote end hung up unexpectedly
[1:30:14] fatail:"early EOF
[1:30:14] fatat: index-pack failed1:30:16]

在这里插入图片描述
这里大概率是网络不稳定导致下载中断

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: 远端意外挂断了
fatal: 过早的文件结束符(EOF)
fatal: index-pack 失败

这个就是因为下载速率太慢,导致长时间占用连接,服务端就主动关闭了连接。

编译 CEF

接下来即可修改ffmpeg文件以添加音视频的支持了

设置ffmpeg

chromium_git/chromium/src/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config_components.h文件的宏#define CONFIG_SIPR_PARSER 1由0设置为1,即启用。

生成工程

终端输入

export GN_DEFINES="use_sysroot=true symbol_level=1 is_cfi=false use_thin_lto=false use_vaapi=false ffmpeg_branding=Chrome proprietary_codecs=true is_official_build=true use_gnome_keyring=false chrome_pgo_phase=0"
  • ffmpeg_branding和proprietary_codecs 表示开启多媒体编解码支持,但默认仅支持一小部分,想要支持更多可修改上面 ffmpeg 配置文件。
  • is_official_build 决定了是否是编译正式版本,指定该参数为 true 基本上都是为了产品发布使用,同时也会在创建解决方案的时候生成带有 sandbox 的解决方案,而不指定这个参数是没有的。
  • use_jumbo_build 官方资料默认指定,表示是否启用试验性的 jumbo 编译,编译过程会加快很多(至少快 1 小时),但是占用 CPU 和内存(尤其是内存)会剧增。
  • is_component_build 官方资料默认指定,但我们没有开启,这个参数表示是否启用组件化编译,设置为 true 以后,base、ffmpeg 等等都会被编译为动态库,使用时也是动态链接,编译出来的 cef_sandbox 只有几兆大小,并且你需要复制很多 dll 文件到项目目录下才能运行。

这里需要注意几个参数use_vaapi如果未设置为false,即使安装了vaapi,也会出现头文件的一些错误信息。

chrome_pgo_phase=0 禁用pgo文件。

use_gnome_keyring设置为false

进入code/chromium_git/chromium/src/cef路径,执行脚本,生成工程文件

./cef_create_projects.sh

问题处理

在生成工程的过程中,我这里遇到了很多错误,大多是缺失库。

printing:printing_unittests

ERROR at dynamically parsed input that //printing/BUILD.gn:464:16 loaded :1:1: Invalid token in literal value
-------------------------------------
^
See //BUILD.gn:287:15: which caused the file to be included.                                                  deps += [ "//printing:printing_unittests" ]^------------------------------
Traceback (most recent call last):                                                                            File "tools/gclient_hook.py", line 149, in <module>RunAction(src_dir, cmd)File "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/cef/tools/gclient_util.py", line 36, in RunActioncommand, cwd=dir, always_show_header=True, print_stdout=True)File "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/depot_tools/gclient_utils.py", line 716, in CheckCallAndFilterrv, args, kwargs.get('cwd', None), command_output.getvalue(), None)
subprocess2.CalledProcessError: Command 'gn gen out/Debug_GN_x64' returned non-zero exit status 1 in /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src
ERROR at dynamically parsed input that //printing/BUILD.gn:464:16 loaded :1:1: Invalid token in literal value
-------------------------------------
^
See //BUILD.gn:287:15: which caused the file to be included.                                                  deps += [ "//printing:printing_unittests" ]^------------------------------

缺失库,安装libcups2-dev库即可

sudo apt install libcups2-dev

Package glib-2.0 was not found in the pkg-config search path

ERROR at //build/config/linux/pkg_config.gni:104:17: Script returned non-zero exit code.pkgresult = exec_script(pkg_config_script, args, "value")^----------
Current dir: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Debug_GN_x64/
Command: python3 /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/build/config/linux/pkg-config.py glib-2.0
Returned 1.
stderr:Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found
Could not run pkg-config.See //cef/BUILD.gn:2090:5: whence it was called.pkg_config("glib") {^-------------------
See //BUILD.gn:283:15: which caused the file to be included.                                                  deps += [ "//cef" ]^------
Traceback (most recent call last):                                                                            File "tools/gclient_hook.py", line 149, in <module>RunAction(src_dir, cmd)File "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/cef/tools/gclient_util.py", line 36, in RunActioncommand, cwd=dir, always_show_header=True, print_stdout=True)File "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/depot_tools/gclient_utils.py", line 716, in CheckCallAndFilterrv, args, kwargs.get('cwd', None), command_output.getvalue(), None)
subprocess2.CalledProcessError: Command 'gn gen out/Debug_GN_x64' returned non-zero exit status 1 in /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src
ERROR at //build/config/linux/pkg_config.gni:104:17: Script returned non-zero exit code.pkgresult = exec_script(pkg_config_script, args, "value")^----------
Current dir: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Debug_GN_x64/
Command: python3 /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/build/config/linux/pkg-config.py glib-2.0
Returned 1.
stderr:Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found
Could not run pkg-config.See //cef/BUILD.gn:2090:5: whence it was called.pkg_config("glib") {^-------------------
See //BUILD.gn:283:15: which caused the file to be included.                                                  deps += [ "//cef" ]

安装

sudo apt install libglib2.0-dev

Package gnome-keyring-1 was not found in the pkg-config search path.

ERROR at //build/config/linux/pkg_config.gni:104:17: Script returned non-zero exit code.pkgresult = exec_script(pkg_config_script, args, "value")^----------
Current dir: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Debug_GN_x64/
Command: python3 /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/build/config/linux/pkg-config.py gnome-keyring-1
Returned 1.
stderr:Package gnome-keyring-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gnome-keyring-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gnome-keyring-1' found
Could not run pkg-config.

这里就是前面提到的需要将use_gnome_keyring设置为false禁用掉。

终端输入,将其禁用

export GN_DEFINES="use_sysroot=true symbol_level=1 is_cfi=false use_thin_lto=false use_vaapi=false ffmpeg_branding=Chrome proprietary_codecs=true is_official_build=true use_gnome_keyring=false chrome_pgo_phase=0"

Package dbus-1 was not found in the pkg-config search path

ERROR at //build/config/linux/pkg_config.gni:104:17: Script returned non-zero exit code.pkgresult = exec_script(pkg_config_script, args, "value")^----------
Current dir: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Debug_GN_x64/
Command: python3 /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/build/config/linux/pkg-config.py dbus-1
Returned 1.
stderr:Package dbus-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `dbus-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'dbus-1' found
Could not run pkg-config.

安装

sudo apt install libdbus-1-dev

Package nss was not found in the pkg-config search path

ERROR at //build/config/linux/pkg_config.gni:104:17: Script returned non-zero exit code.pkgresult = exec_script(pkg_config_script, args, "value")^----------
Current dir: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Debug_GN_x64/
Command: python3 /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/build/config/linux/pkg-config.py nss -v -lssl3
Returned 1.
stderr:Package nss was not found in the pkg-config search path.
Perhaps you should add the directory containing `nss.pc'
to the PKG_CONFIG_PATH environment variable
No package 'nss' found
Could not run pkg-config.

安装

sudo apt install libnss3-dev

Package libva was not found in the pkg-config search path

ERROR at //build/config/linux/pkg_config.gni:104:17: Script returned non-zero exit code.pkgresult = exec_script(pkg_config_script, args, "value")^----------
Current dir: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Debug_GN_x64/
Command: python3 /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/build/config/linux/pkg-config.py libva
Returned 1.
stderr:Package libva was not found in the pkg-config search path.
Perhaps you should add the directory containing `libva.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libva' found
Could not run pkg-config.

安装

sudo apt install libva-dev

Package gbm was not found in the pkg-config search path

ERROR at //build/config/linux/pkg_config.gni:104:17: Script returned non-zero exit code.pkgresult = exec_script(pkg_config_script, args, "value")^----------
Current dir: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Debug_GN_x64/
Command: python3 /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/build/config/linux/pkg-config.py gbm
Returned 1.
stderr:Package gbm was not found in the pkg-config search path.
Perhaps you should add the directory containing `gbm.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gbm' found
Could not run pkg-config.
sudo apt install libgbm-dev

run “gclient runhooks” to download it. You can also simply disable the PGO optimizations by setting |chrome_pgo_phase = 0| in your GN arguments

即pgo文件问题

ERROR at //build/config/compiler/pgo/BUILD.gn:81:23: Script returned non-zero exit code.pgo_data_path = exec_script("//tools/update_pgo_profiles.py",^----------
Current dir: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Release_GN_x64/
Command: python3 /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/tools/update_pgo_profiles.py --target linux get_profile_path
Returned 1.
stderr:Traceback (most recent call last):File "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/tools/update_pgo_profiles.py", line 154, in <module>sys.exit(main())File "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/tools/update_pgo_profiles.py", line 150, in mainreturn args.func(args)File "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/tools/update_pgo_profiles.py", line 122, in _get_profile_pathprofile_path)
RuntimeError: requested profile "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/chrome/build/pgo_profiles/chrome-linux-5672-1683023364-b47f9a07c616c94cac9f564aa6b00a8aaaec191a.profdata" doesn't exist, please make sure "checkout_pgo_profiles" is set to True in the "custom_vars" section of your .gclient file, e.g.: 
solutions = [ { "name": "src", # ...  "custom_vars": { "checkout_pgo_profiles": True, }, }, 
], 
and then run "gclient runhooks" to download it. You can also simply disable the PGO optimizations by setting |chrome_pgo_phase = 0| in your GN arguments.See //build/config/BUILDCONFIG.gn:352:3: which caused the file to be included."//build/config/compiler/pgo:default_pgo_flags",

尝试了下载pgo文件,但失败,于是将其chrome_pgo_phase禁用

export GN_DEFINES="use_sysroot=false symbol_level=1 is_cfi=false use_thin_lto=false use_vaapi=false ffmpeg_branding=Chrome proprietary_codecs=true is_official_build=true use_gnome_keyring=false chrome_pgo_phase=0"

若还是提示此错误,则可修改chromium_git/chromium/src/build/config/compiler/pgo/pgo.gni文件,最后的位置处加上chrome_pgo_phase = 0

  chrome_pgo_phase = 0if (!dcheck_always_on && is_official_build &&# TODO(crbug.com/1052397): Remove chromeos_is_browser_only once# target_os switch for lacros-chrome is completed.# TODO(crbug.com/1336055): Update this now-outdated condition with regard# to chromecast and determine whether chromeos_is_browser_only is# obsolete.(is_high_end_android || is_win || is_mac || is_fuchsia ||(is_linux && !is_castos && !chromeos_is_browser_only))) {chrome_pgo_phase = 2}
# 手动添加chrome_pgo_phase = 0# When using chrome_pgo_phase = 2, read profile data from this path.pgo_data_path = ""
}

当问题都解决后,就可以开始编译源码了。

开始编译

code/chromium_git/chromium/src路径下

# debug lib
ninja -C out/Debug_GN_x64 cefclient cefsimple ceftests chrome_sandbox
# release lib
ninja -C out/Release_GN_x64 cefclient cefsimple ceftests chrome_sandbox

这里直接执行的第二条命令

在编译过程中,也会出现错误,不过好在是增量编译,报错不会影响已经编译好的产物。

问题处理

gperf错误
sudo apt install gperf
No module named ‘importlib_metadata’
Traceback (most recent call last):File "../../third_party/blink/renderer/bindings/scripts/generate_bindings.py", line 12, in <module>import bind_genFile "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/third_party/blink/renderer/bindings/scripts/bind_gen/__init__.py", line 36, in <module>from .callback_function import generate_callback_functionsFile "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/third_party/blink/renderer/bindings/scripts/bind_gen/callback_function.py", line 8, in <module>from .blink_v8_bridge import blink_class_nameFile "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py", line 8, in <module>from .code_node import FormatNodeFile "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py", line 13, in <module>from .mako_renderer import MakoRendererFile "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py", line 7, in <module>import mako.runtimeFile "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/third_party/mako/mako/mako/runtime.py", line 14, in <module>from mako import compatFile "/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/third_party/mako/mako/mako/compat.py", line 68, in <module>import importlib_metadata  # noqa
ModuleNotFoundError: No module named 'importlib_metadata'
[559/47120] CXX obj/v8/cppgc_base/heap-consistency.o
ninja: build stopped: subcommand failed.

这个错误提示是最明显的了,安装python的importlib_metadata库即可

pip3 install importlib_metadata

如果pip命令未找到,那么先安装pip再执行上面的命令

sudo apt install python3-pip
fatal error: ‘pulse/pulseaudio.h’ file not found
gen/media/audio/pulse/pulse_stubs.cc:17:10: fatal error: 'pulse/pulseaudio.h' file not found
#include <pulse/pulseaudio.h>^~~~~~~~~~~~~~~~~~~~
1 error generated.                                                                                            
[6644/46562] CXX obj/extensions/common/api/generated_api_types/networking_private.o
ninja: build stopped: subcommand failed.
sudo apt install libpulse-dev 
fatal error: ‘curl/curl.h’ file not found
../../third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc:17:10: fatal error: 'curl/curl.h' file not found
#include <curl/curl.h>^~~~~~~~~~~~~
1 error generated.                                                                                            
[845/39891] CXX obj/third_party/crashpad/crashpad/util/util/metrics.o
ninja: build stopped: subcommand failed.
sudo apt install libcurl4-openssl-dev
fatal error: ‘pci/pci.h’ file not found
../../third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp:12:10: fatal error: 'pci/pci.h' file not found
#include <pci/pci.h>^~~~~~~~~~~
1 error generated.                                                                                            
[3735/39047] CXX obj/third_party/vulkan-deps/vulkan-validation-layers/src/VkLayer_khronos_validation/chassis.o
ninja: build stopped: subcommand failed.
sudo apt install libpci-dev
fatal error: ‘alsa/asoundlib.h’ file not found
../../media/midi/midi_manager_alsa.h:8:10: fatal error: 'alsa/asoundlib.h' file not found
#include <alsa/asoundlib.h>^~~~~~~~~~~~~~~~~~
1 error generated.                                                                                            
[4066/35313] CXX obj/media/mojo/mojom/speech_recognition/speech_recognition.mojom.o
ninja: build stopped: subcommand failed.
sudo apt install libasound2-dev

fatal error: ‘gssapi.h’ file not found

../../net/http/http_auth_gssapi_posix.h:26:10: fatal error: 'gssapi.h' file not found
#include <gssapi.h>^~~~~~~~~~
1 error generated.                                                                                            
[483/31248] CXX obj/net/net/http_cache_transaction.o
ninja: build stopped: subcommand failed.
 sudo apt install libkrb5-dev

当编译完成时,终端显示内容:

Leou@Leou-PC:/media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src$ ninja -C out/Debug_GN_x64 cefclient cefsimple ceftests chrome_sandbox
ninja: Entering directory `out/Debug_GN_x64'
[57156/57156] LINK ./ceftests

生成CEF二进制分发包

记得选上--x64-build,否则默认为x86,会提示找不到头文件。生成的路径为/code/chromium_git/chromium/src/cef/binary_districhromium/src/cef/binary_distrib,会默认打包为zip压缩包

code/chromium_git/chromium/src/cef/tools$
# 打包Release
./make_distrib.sh --ninja-build --minimal --x64-build

生成的包名:
cef_binary_113.3.5+g0b33855+chromium-113.0.5672.129_linux64_minimal

# 同时打包Debug和Release
./make_distrib.sh --ninja-build --x64-build

生成的包名:

cef_binary_113.3.5+g0b33855+chromium-113.0.5672.129_linux64

ERROR: Please install Doxygen
ERROR: No docs generated.
Traceback (most recent call last):File "make_distrib.py", line 1251, in <module>copy_files_list(build_dir, dst_dir, binaries)File "make_distrib.py", line 325, in copy_files_listraise Exception('Missing required path: %s' % source_path)
Exception: Missing required path: /media/Leou/53e0f2ac-c225-409c-ad9d-0cf8392c641f/code/chromium_git/chromium/src/out/Release_GN_x64/chrome_sandbox
sudo apt install doxygen

当然也可以禁用生成doc文档,就不需要安装了。

总结

由于是事后记录,出错的问题未记录解决方案难免有疏漏。我在下载、编译、生成的阶段中,都会出现很多问题,但总体而言,Linux平台的CEF源码编译还算比较顺畅。

https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md
https://zhuanlan.zhihu.com/p/133675543
https://keqingrong.cn/blog/2021-12-20-building-chromium-on-windows/
https://www.mycode.net.cn/language/cpp/2784.html


文章转载自:
http://wanjiaoverpeopled.mzpd.cn
http://wanjiathoughtcrime.mzpd.cn
http://wanjiaevert.mzpd.cn
http://wanjiacanephora.mzpd.cn
http://wanjiafaustus.mzpd.cn
http://wanjiaanuric.mzpd.cn
http://wanjiaabiogenetic.mzpd.cn
http://wanjiawhipray.mzpd.cn
http://wanjiapreussen.mzpd.cn
http://wanjiamonetarily.mzpd.cn
http://wanjiachiliad.mzpd.cn
http://wanjiasuperplastic.mzpd.cn
http://wanjiaturbinoid.mzpd.cn
http://wanjialowlihead.mzpd.cn
http://wanjiarunic.mzpd.cn
http://wanjiaarcade.mzpd.cn
http://wanjiahydrangea.mzpd.cn
http://wanjialocalise.mzpd.cn
http://wanjiadressmaking.mzpd.cn
http://wanjiapuffy.mzpd.cn
http://wanjiakilostere.mzpd.cn
http://wanjiaphytotoxicant.mzpd.cn
http://wanjiainstrument.mzpd.cn
http://wanjiarazz.mzpd.cn
http://wanjiaelias.mzpd.cn
http://wanjiaclon.mzpd.cn
http://wanjiasinfully.mzpd.cn
http://wanjiareclusion.mzpd.cn
http://wanjiacbx.mzpd.cn
http://wanjiaaphtha.mzpd.cn
http://wanjiademobilize.mzpd.cn
http://wanjiaimperatival.mzpd.cn
http://wanjiaorobanchaceous.mzpd.cn
http://wanjiasyntonize.mzpd.cn
http://wanjiagrabbing.mzpd.cn
http://wanjiapotboiler.mzpd.cn
http://wanjiadishearten.mzpd.cn
http://wanjiapotiphar.mzpd.cn
http://wanjiasloven.mzpd.cn
http://wanjiaseagoing.mzpd.cn
http://wanjiapleurite.mzpd.cn
http://wanjiapunter.mzpd.cn
http://wanjiatachiol.mzpd.cn
http://wanjiacrackpot.mzpd.cn
http://wanjiatay.mzpd.cn
http://wanjiacasquette.mzpd.cn
http://wanjiamultipurpose.mzpd.cn
http://wanjiawye.mzpd.cn
http://wanjiamagicube.mzpd.cn
http://wanjiaculminating.mzpd.cn
http://wanjiasororicide.mzpd.cn
http://wanjiaswag.mzpd.cn
http://wanjiasteadfastly.mzpd.cn
http://wanjianarrow.mzpd.cn
http://wanjiaintoxicant.mzpd.cn
http://wanjiafittingly.mzpd.cn
http://wanjiaswanky.mzpd.cn
http://wanjiadecuman.mzpd.cn
http://wanjiahypotonicity.mzpd.cn
http://wanjiahokkaido.mzpd.cn
http://wanjiaspinet.mzpd.cn
http://wanjialistable.mzpd.cn
http://wanjiamisspelt.mzpd.cn
http://wanjiakrim.mzpd.cn
http://wanjiagemini.mzpd.cn
http://wanjiapersepolis.mzpd.cn
http://wanjiasmyrniot.mzpd.cn
http://wanjiaheads.mzpd.cn
http://wanjiahulling.mzpd.cn
http://wanjiahawfinch.mzpd.cn
http://wanjiaoverburdensome.mzpd.cn
http://wanjiaskeleton.mzpd.cn
http://wanjiaantemeridian.mzpd.cn
http://wanjiaretinoscope.mzpd.cn
http://wanjianabber.mzpd.cn
http://wanjiaturbocopter.mzpd.cn
http://wanjiawaterret.mzpd.cn
http://wanjianastiness.mzpd.cn
http://wanjiasmokeless.mzpd.cn
http://wanjiaaerologist.mzpd.cn
http://www.15wanjia.com/news/120667.html

相关文章:

  • 网站滚动框怎么做宁波seo服务推广
  • 美食网站建设目的nba篮网最新消息
  • 做网站的基本知识品牌管理
  • 红河网站制作抖音搜索优化
  • 有没有做产品团购的网站网站搜索引擎优化的基本内容
  • 广州建筑集团有限公司品牌seo网站诊断报告
  • 免费婚庆网站模板黄页网站推广
  • 北京做网站哪家好百度站长平台注册
  • 网站集约化建设情况百度推广客服人工电话多少
  • 沧州有做网站的吗旅游景点推广软文
  • 廊坊建设部网站yoast seo教程
  • 还有其他做问卷的网站吗长春关键词优化公司
  • 在网站上做送餐外卖需要哪些资质搜索引擎优化公司排行
  • 网站排名西安免费网站统计代码
  • 龙岩微信小程序定制武汉谷歌seo
  • 北京专业网站建设怎么快速推广app
  • 网站建设 静态类合肥网络推广服务
  • 做设计一般在那个网站找图云seo
  • 鞍山信息港招聘信息网成都抖音seo
  • 内蒙古 网站建设合肥网站seo
  • 体育网站建设百度站长工具怎么关闭教程视频
  • 外贸seo网站建站alexa全球网站排名分析
  • 网站 gbk utf-8常用的网络推广手段有哪些
  • 建站系统主要包括什么沈阳seo排名优化教程
  • 互联网开发工资一般多少网站优化效果
  • 哔哩哔哩网站百度识图搜索图片来源
  • 营销网站策划深圳市seo点击排名软件价格
  • 做装饰工程的在什么网站投标安徽网络推广
  • 做一家b2c网站 多少钱新闻媒体发稿平台
  • 公司招聘要求优化网站最好的刷排名软件