在UOS系统中编译CEF源码

 一、下载cef代码

git clone git@bitbucket.org:chromiumembedded/cef.git

二、执行自动下载代码

        由于chromium的代码很大,至少需要准备大概80G的硬盘!!!整个代码量太大还是多准备一些空间吧(强烈建议使用固态硬盘保存否则编译时会很慢),因此我们可能需要多次下载chromium代码分批下载下来。

cd cef/tools/automate

   我的python版本为:Python 3.8.18,应该python3版本都可以。

python3 automate-git.py --download-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/chromium --depot-tools-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/depot_tools --no-distrib --x64-build --branch=5938 

--download-dir:chromium的代码地址

--depot-tools-dir:depot-tools编译工具下载地址

--x64-build:编译成amdx86_64

--branch=5938 :选择cef的分支为5938,建议使用固定分支,不推荐使用master因为chromium的版本会固定下来。

如果失败了不要悲伤,这里有可能是因为网络或者超时等原因造成的。

将chromium/chromium/_gclient_src_XXX目录修改为chromium/chromium/src目录,然后继续执行以下命令确保分批次下载好chromium的源码

分批次下载如下命令:

第一步:先将最新的一次提交clone下载(如果没有git才执行该代码,有了直接跳过这个步骤!!!)

第二步:分步pull主线代码

git pull --depth 1
git pull --depth 100
git pull --depth 1000
git pull --depth 30000
git pull

git checkout main
git pull

第三步:更新tags

3.1 获取所有tag号信息,将所有的tag号保存在tags.log文件中

git ls-remote --tags origin > tags.log

 3.2 根据每一个tag号单独下载代码

接下来就是漫长的等待过程

#!/bin/bash

lists=`grep 'refs/tags/' tags.log | awk -F' ' '{print $2}'`
for tag in $lists
do
	git fetch origin  $tag
done

3.3 整体同步下载代码

git fetch --tags

第四步:继续执行命令

python3 automate-git.py --download-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/chromium --depot-tools-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/depot_tools --no-distrib --x64-build --branch=5938 

在执行过程中需要修改depot_tools脚本中的缓存大小。

vim depot_tools/gclient_utils.py中的缓存大小。默认2G修改为4G。由于git在使用过程中会使用大量的内存导致系统性能。所以这里做了限制,可以根据计算机的内存设备进行设置。我的系统是16G的因此设置为4G也不会有很大的影响。

def DefaultDeltaBaseCacheLimit():
    """Return a reasonable default for the git config core.deltaBaseCacheLimit.

  The primary constraint is the address space of virtual memory.  The cache
  size limit is per-thread, and 32-bit systems can hit OOM errors if this
  parameter is set too high.
  """
    if platform.architecture()[0].startswith('64'):
        return '2g'

    return '512m'

 仅仅编译不下载代码命令如下:

python3 automate-git.py --download-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/chromium --depot-tools-dir=/media/arv000/3a8d3186-5909-4fb7-9a5d-a450b5d66d09/work/cef2/depot_tools --no-distrib --x64-build --branch=5938 --no-chromium-update  --no-depot-tools-update --no-cef-update

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在外部数据库中存储空间化表时使用Mapinfo_mapcatalog

开始创建地图目录表之前 您将使用EasyLoader在要使用的数据库中创建地图目录表。EasyLoader与MapInfo Pro一起安装。 (工具“DBMS_Catalog”不再随MapInfo Professional 64位一起提供,因为它的功能可以在EasyLoader工具中找到。) ​ 注&…

如何在MapInfo Pro中访问WMS数据?

从Web地图服务检索地图数据 将WMS服务器添加到MapInfo Pro后,用户可以从中检索地图数据。请记住,Web地图服务是一项新技术,您正在寻找的地图可能不适合所需的地理位置。 此外,所提供的数据由服务器确定。当将WMS数据作为工作空间的…

MODBUS转PROFINET网关TS-180连接西门子PLC和工业称重仪表

项目 随着科技的高速发展,工业自动化行业对日益多样的称重需求越来越高,上海某公司在国内的一个 工业自动化项目中,监控中心系统需要远程实时采集工业称重仪表测量的各种称重参数。该系统使用的是 西门子 S7-300 PLC,支持 PROFINE…

一书了解国产操作系统openEuler

操作系统是计算机之“魂” 数字化、智能化正在深刻地改变着我们的生活方式,也深刻地影响着世界格局。 支撑数字化、智能化的关键是数字基础设施,主要涉及数据中心、互联网、物联网、人工智能等新一代信息技术。 数字基础设施已成为保障产业格局、经济…

requests 技术问题解决流程:从问题重现到测试验证

在 #homedesign 项目中,用户 jimmysisonlucas 报告了一个bug。根据他的描述,他希望解决这个bug。然而,由于他没有提供详细的bug描述,我们无法确定具体的bug是什么。 问题的解决流程:从bug重现到测试验证 尽管我们没有…

Java爬虫框架下代理使用中的TCP连接池问题及解决方案

引言 当使用Java爬虫框架进行代理爬取时,可能会遇到TCP连接池问题,导致"java.net.BindException: Cannot assign requested address"等错误。本文将介绍如何以爬取小红书为案例,解决Java爬虫框架中代理使用中的TCP连接池问题&…

递归和分治

递归 递归(英语:Recursion),在计算机科学中,递归指的是一个函数在其定义中调用自身的方法。这种技术允许程序解决复杂问题,通过将它们分解为更小、更易管理的相似问题。递归通常与分治策略相关联&#xff…

Idea 2023.2.5配置(插件、Maven等)

IDEA2023.2.5配置 一. 插件Alibaba Java Coding Guidelines plugin supportMaven HelperMyBatisXSonarLintTranslationVuesion Theme 二. 自定义创建live template,快速写代码三. 修改全局配置3.1 Maven配置3.1.1 安装MavenStep1. 下载Step2. 安装Step3. 创建系统环…

论文阅读:“iOrthoPredictor: Model-guided Deep Prediction of Teeth Alignment“

文章目录 IntroductionMethodologyProblem FormulationConditional Geometry GenerationTSynNetAligned Teeth Silhouette Maps Generation ResultsReferences Github 项目地址:https://github.com/Lingchen-chen/iOrthopredictor Introduction 这篇文章提出了一种…

栈和队列

目录 1.栈 1.1栈的概念及结构 1.2栈的实现 2.队列 2.1队列的概念及结构 2.2队列的实现 1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈…

重视日常消防巡检有必要,智能巡检系统来帮忙

近日,山西吕梁市永聚煤矿一办公楼发生火灾,造成重大人员伤亡,事故造成26人死亡、38人受伤。 是的,你没看错,煤矿公司、办公楼火灾、重大伤亡。第一反应,煤矿即使出事故也多为作业事故,居然还能在日常消防安…

“Python+”集成技术高光谱遥感数据处理

高光谱遥感数据处理的基础、python开发基础、机器学习和应用实践。重点解释高光谱数据处理所涉及的基本概念和理论,旨在帮助学员深入理解科学原理。结合Python编程工具,专注于解决高光谱数据读取、数据预处理、高光谱数据机器学习等技术难题,…

Chrome中设置安全来源域名

目的: 使得本地映射的域名能被浏览器安全访问,允许调用设备资源 步骤: 在Chrome中导航栏打开 chrome://flags/#unsafely-treat-insecure-origin-as-secure 填入hosts域名:如 http://h5-twzc003.local.com 参考: h…

AutoSAR CANIF层配置代码分析

CAN物理控制单元 配置: 生成的代码: CanIf_CtrlStates 解析 类型: typedef union CanIf_CtrlStatesUTag {CanIf_CtrlStatesType raw[3];CanIf_CtrlStatesStructSType str; }CanIf_CtrlStatesUType;typedef struct sCanIf_CtrlStatesType {C…

自定义歌曲试听SeekBar

看到这个效果,可能会想到完全自定义一个控件,其实我们在系统Seekbar的基础上,将progressDrawable中progress背景设为透明后,叠加绘制试听状态下的进度区域即可 class PlayerSeekBar JvmOverloads constructor(context: Context,a…

客服中心的客户关系管理核心功能

根据国外的调查,拥有客服中心的运营机构,可以保持85%左右的客户忠诚度,而接受过专业培训的客户中心可以将客户忠诚度提高到99%。客服中心作为客户关系管理的前沿,通过提供服务、实时沟通、搜集与分析客户信息、预测客户需求来提升…

SQL常见函数整理 —— lead()向下偏移

1. 用法 是在窗口函数中使用的函数,它用于获取当前行的下一行(后一行)的某个列的值。具体来说,LEAD() 函数可用于查找任何给定行的下一行(后一行)的值,同时也可控制行数偏移量(offse…

每日汇评:澳元多头着眼于50%的斐波那契水平

澳元兑美元跳涨至三个月高点上方,并从多种因素中获得支撑; 对美联储已经结束加息的预期继续严重打压美元; 对中国出台更多刺激措施的乐观情绪和积极的风险基调也有利于澳元; 澳元兑美元周一连续获得强劲的后续积极牵引力&#xff…

在列表控件上显示提示信息

当我们在实现列表控件上的提示信息的时候,我们需要处理的一个难点是处理列表条目的折叠和展开这两种情况。 所谓列表条目的折叠,即在大图标模式(Large Icon Mode)下,列表条目的文字过长而被截断的情况。当用户选择这个条目后,条目…

损失函数总结(十五):MSLELoss、RMSLELoss

损失函数总结(十五):MSLELoss、RMSLELoss 1 引言2 损失函数2.1 MSLELoss2.2 RMSLELoss 3 总结 1 引言 在前面的文章中已经介绍了介绍了一系列损失函数 (L1Loss、MSELoss、BCELoss、CrossEntropyLoss、NLLLoss、CTCLoss、PoissonNLLLoss、Gau…