Ubuntu22下源码编译CEF(branch=6045)+mp4+mp3笔记

前段时间编译了win版本,最近捣鼓一下Ubuntu版本。

配置网络,Ubuntu在网络配置填写了代理,在终端还是要输入

set http_proxy=xxxx:xx
set https_proxy=xxxx:xx

这样避免大部分的git代码下载

为了减少下载代码和避免git那个几G内存的坑,我直接将windows下的版本复制了一份,这也为后面埋下了坑。

根据文档需求,创建了这个文件夹结构,三个子文件夹automate, chromium_git, depot_tools和一个sh文件update.sh,一个py文件 Install-build-deps.py

/media/xxx/linux/code/ (后面简化为~/code方便阅读,实际上~/代表用户根目录,在这里~=/media/xxx/linux。)

  automate/automate-git.py   <-- CEF build scriptchromium_git/update.sh   <-- Bootstrap script for automate-git.pydepot_tools/        <-- Chromium build toolsInstall-build-deps.py   <—install deps

先拉automate-git.py,为了方便,我直接git先下一份cef,然后在cef/tools/automate文件夹找到它。将它复制到~/code/automate/下。

1. 安装python3等,下载install-build-deps.py(抄书)

cd ~/code
sudo apt-get install curl file lsb-release procps python3 python3-pip
curl 'https://chromium.googlesource.com/chromium/src/+/main/build/install-build-deps.py?format=TEXT' | base64 -d > install-build-deps.py
sudo python3 ./install-build-deps.py --no-arm --no-chromeos-fonts --no-nacl
python3 -m pip install dataclasses importlib_metadata

2.编写update.sh

#!/bin/bash
python3 ./automate/automate-git.py —download-dir=~/code/chromium_git —depot-tool-dir=~/code/depot_tools  —no-distrib —no-build —branch=6045

运行update.sh之后就得到

chromium_git/

   cef/

   chromium/

         cef/

3.在~/code/chromium_git目录下运行终端

export PATH=~/code/depot_tools:$PATH
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome chrome_pgo_phase=0 use_thin_lto=false use_jumbo_build=true
set GN_ARGUMENTS=--ide=ninja --sln=cef --filters=//cef/*
python3 ./chromium/src/cef/tools/gclient_hook.py —depot-tool-dir=~/code/depot_tools

很快就在 ~/code/chromium_git/chromium/src/out 生成两个子文件夹 Release_GN_X64和Debug_GN_X64

一切看起来很顺利,不过一会就打脸了。

4.编译

export PATH=~/code/depot_tools:$PATH
cd ./chromium/src
Ninja -j8 -C out/Release_GN_X64

还没开始就结束,报错了,clang相关的库找不到。原因在上面有,指向的llvm-build下的windows版本的,根本不可能进行编译。直接删了,结果更快报错。于是相当了同步代码。在~/code/chromium_git/chromium下运行gclient sync,貌似会提示配置NO_AUTH_BOTO_CONFIG,什么鬼?这里同步就算不配置NO_AUTH_BOTO_CONFIG,命令行也没出现error字样的,但是中间会缺失很多文件。使用文档编辑器,写上类似

[Boto]
proxy = <代理服务器的地址>
proxy_port = <代理服务器的端口号>
proxy_user = <代理服务器的用户名>
proxy_pass = <代理服务器的密码>

有些没有proxy_user和proxy_pass的,可以不填。 然后保存到~/code/.boto。命令行走起:

export PATH=~/code/depot_tools:$PATH
export NO_AUTH_BOTO_CONFIG=~/code/.boto
cd ~/code/chromium_git/chromium
gclient sync -D

这样一波操作会清除windows下库,同时同步了linux的clang。查看一下~/code/chromium_git/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang,如果不在,那就死磕它,继续gclient sync

完成之后重新开始,调到步骤1 。

编译中可能遇到的问题:

1 报X11问题,有人提及跳过编译client,但是我还是尝试安装一下xcb系列。

sudo apt install xcb libxcb-xkb-dev x11xkb-utils libx11-xcb-dev libxkbcommon-x11-dev

貌似安装之后不会提示X11/xxxx.h找不到之类的。

2 报vaapi的错,例如: error: no member named ‘subsampling_x’ in ‘__VAEncSequenceParameterBufferAV1….’ ,这google提到是libva的版本太低了。Ubuntu安装的libva-dev是1.14.0,我直接编译一份(2.21.0)

git clone https://github.com/intel/libva
./autogen.sh
./configure
make -j12
sudo make install

其他的修改可以参考windows编译版本。

有时候一个细节会挂系统,我之前编译一次,在ninja编译的时候没有加-j8,无限制编译模式,结果死机重启后就登录不了,黑屏,真服了。。。后来限制编译速度,不满核跑了。

还没编译完整,资源没那么快放上来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 标准库SYS

标准库sys引入及方法介绍和示例。 简介 sys 模块主要负责与 Python 解释器进行交互&#xff0c;该模块提供了一系列用于控制 Python 运行环境的函数和变量。 命令行参数 可以获取传递给python 执行文件的命令行参数&#xff0c;命令行参数是由sys模块存储在名为argv的列表中&…

通信子网在计算机网络中的地位和作用

一、通信子网是计算机网络的核心组成部分 通信子网是计算机网络的核心组成部分&#xff0c;它负责为计算机网络中的各种设备提供通信支持。无论是主机之间的数据传输&#xff0c;还是主机与终端之间的数据通信&#xff0c;都需要通过通信子网来实现。通信子网是连接各个设备的关…

严世芸龟法养生经

文章目录 严世芸理念荤素搭配&#xff0c;不偏嗜动静结合心平气和 龟息法 严世芸 严世芸&#xff0c;出生于1940年&#xff0c;现任上海中医药大学的主任医师&#xff0c;教授。他父亲是近代上海有名的中医&#xff0c;他又是著名医家张伯臾的亲传弟子。 从小就在父亲诊室里长…

leetCode算法—3.无重复字符的最长子串

1.给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 …

PO 对象被锁定

问题描述 在创建PO对象的时候&#xff0c;由于上次电脑断网导致PO连接中断&#xff0c;但服务器中登录用户还在占用PO对象&#xff0c;需要手动在POD中删除锁对象才可编辑 解决方案 登录到POD页面&#xff0c;点击右上角Administration 点击Lock Overview&#xff0c;查看…

营销投放下半场,游戏行业如何寻觅进化空间?

摘要&#xff1a;微博&#xff0c;游戏行业突围市场新利器 游戏行业&#xff0c;格局永远在变。 从2017年互联网大厂集体盯上游戏大蛋糕&#xff0c;到2021年行业收缩&#xff0c;再到今年上半年实际销售收入继去年首次出现同比下滑…几经过山车式行情的游戏行业&#xff0c;…

加密友好不意味容易!亚洲地区实施了世界上最严格的加密规定!

2023年的一大主题是亚洲作为加密货币世界中至关重要的地区的持续崛起。这在很大程度上要归功于新加坡等著名的数字资产中心&#xff0c;以及香港和日本的重新崛起。 虽然这些司法管辖区确实欢迎数字资产&#xff0c;但围绕它们的炒作可能会有些误导&#xff0c;加密友好并非意味…

【AI】如何准备mac开发vue项目的环境

为了在Mac上开发Vue项目&#xff0c;你需要准备一些工具和环境。以下是主要的步骤&#xff1a; 安装Node.js和npm&#xff1a; Vue.js是一个基于JavaScript的框架&#xff0c;因此你需要Node.js环境。访问Node.js官网下载并安装Node.js&#xff0c;这也会自动安装npm&#xff0…

图像生成中的“Classifer-free guidance”是什么?

在图像生成领域&#xff0c;"Classifier-free guidance"是一种用于改善条件生成模型性能的技术&#xff0c;特别是在使用生成对抗网络&#xff08;GANs&#xff09;或扩散模型等生成模型时。这个概念最近在与扩散模型相关的文献中变得流行&#xff0c;尤其是在OpenAI…

玩转大数据18:大规模数据处理与分布式任务调度

引言 在数字化时代&#xff0c;数据成为了一种宝贵的资源&#xff0c;对于企业和组织来说&#xff0c;如何有效地处理和分析这些数据成为了关键的竞争力。大规模数据处理与分布式任务调度作为大数据处理的核心技术&#xff0c;为解决这一问题提供了有效的解决方案。 随着数据…

赛宁网安多领域亮相第三届网络空间内生安全发展大会

2023年12月8日&#xff0c;第三届网络空间内生安全发展大会在宁开幕。两院院士、杰出专家学者和知名企业家相聚南京&#xff0c;围绕数字经济新生态、网络安全新范式进行广泛研讨&#xff0c;为筑牢数字安全底座贡献智慧和力量。 大会围绕“一会、一赛、一展”举办了丰富多彩的…

vue实现滑动验证

效果图&#xff1a; 源码地址&#xff1a;github文档地址&#xff1a; https://github.com/monoplasty/vue-monoplasty-slide-verify 使用步骤&#xff1a;1&#xff0c;安装插件&#xff1a; npm install --save vue-monoplasty-slide-verify 在main.js中使用一下&#xff…

wgcloud访问页面如何加前缀/wgcloud

nginx配置实现加/wgcloud - WGCLOUD

网络层--TCP/UDP协议

目录 一、TCP/UDP协议介绍 1、UDP(User Datagram Protocol)--用户数据报协议 1.1 UDP报文格式 1.2 UDP协议的特性 2、TCP(Transmission Control Protocol )--传输控制协议 2.1 TCP报文格式 2.2 TCP协议的特性 2.3 TCP三次握手 2.4 四次挥手 三、TCP和UDP的区别 四、t…

Vue3-17-ref 模板引用的基本使用

什么是模板引用 简单来说&#xff0c;就是在 js 代码中 获取到 html 中的dom元素的完整信息&#xff0c; 从而实现直接操作dom元素的效果。模板引用的语法 1、给 dom 元素添加 ref名称 属性&#xff0c;指定一个独有的名称&#xff1b; 2、js 中 声明一个 与 dom 元素的 ref 同…

标准化考场网络时钟系统(子母钟系统)技术建设方案

标准化考场网络时钟系统&#xff08;子母钟系统&#xff09;技术建设方案 标准化考场网络时钟系统&#xff08;子母钟系统&#xff09;技术建设方案 【摘要】时钟系统是校园网络中一个重要的精准计时系统&#xff0c;随着网络的普及&#xff0c;许多校园都建了自己的校园专网&…

c#面试面向对象——在项⽬中为什么使⽤接⼝?接⼝的好处是什么?什么是⾯向接⼝开发?

1.解耦合 接口可以用于定义组件之间的契约&#xff0c;通过接口进行通信&#xff0c;而不必关心具体的实现细节。这使得各个组件之间的依赖关系更加松散&#xff0c;减少了代码的耦合性&#xff0c;使得系统更加灵活和可扩展。 // 定义支付接口 public interface Payment {void…

自建网站如何快速被搜索引擎搜索到?

新网站被搜索引擎迅速收录通常需要一些时间&#xff0c;但您可以采取一些措施来加速这个过程。以下是一些建议&#xff1a; 创建网站地图&#xff1a; 确保您的网站有一个XML站点地图&#xff0c;其中包含所有页面的信息。提交这个站点地图到搜索引擎&#xff0c;如Google Sear…

Find My钥匙扣|苹果Find My技术与钥匙扣结合,智能防丢,全球定位

钥匙扣&#xff0c;又称锁匙扣&#xff0c;钥匙圈&#xff0c;钥匙链&#xff0c;钥匙挂等。制作钥匙扣的材料一般为金属、皮革、塑料、木头等。此物精致小巧、造型千变万化是人们每天随身携带的日常用品。钥匙扣是挂在钥匙圈上的一种装饰物品。最新的智能钥匙扣还具有防丢查找…

feign上传文件

feign client FeignClient(name "oceanengineDMPFileClient", url "https://ad.222222.com",configuration FeignMultipartSupportConfig.class) public interface DMPFileClient {/*** 上传数据源** param accessToken token* return*/PostMapping(v…