CEF127 編譯指南 MacOS 篇 - 拉取 CEF 源碼(五)

1. 引言

在完成了所有必要工具的安裝和配置后,我們進入到獲取 CEF 源碼的階段。對于 macOS 平臺,CEF 的源碼獲取過程需要特別注意不同芯片架構(Intel 和 Apple Silicon)的區別以及版本管理。本文將詳細介紹如何在 macOS 系統上獲取并準備 CEF 源碼,包括創建工作目錄、下載初始代碼以及同步依賴項等步驟。

2. 工作目錄準備

2.1 創建目錄結構

# 創建主要工作目錄
mkdir -p ~/code/chromium_git
mkdir -p ~/code/automate# 進入工作目錄
cd ~/code

2.2 目錄結構說明

  • ~/code/chromium_git:存放 Chromium 和 CEF 源碼
  • ~/code/automate:存放自動化腳本
  • ~/code/depot_tools:工具集目錄(之前已創建)

3. 下載自動化腳本

3.1 獲取腳本

cd ~/code/automate
curl -o automate-git.py https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py

3.2 創建更新腳本

~/code/chromium_git 目錄中創建 update.sh

cd ~/code/chromium_gitcat <<EOL > update.sh
#!/bin/bash
# 為 Intel Mac
python3 ../automate/automate-git.py \\--download-dir=/Users/\$USER/code/chromium_git \\--depot-tools-dir=/Users/\$USER/code/depot_tools \\--no-distrib \\--no-build \\--branch=6533 \\--x64-build# 為 Apple Silicon Mac,替換最后一行為:
# --arm64-build
EOL

3.3 設置腳本權限

chmod 755 update.sh

4. 拉取源碼

4.1 配置環境變量

# 設置基本環境變量
export CEF_USE_GN=1
export GN_DEFINES="is_official_build=true use_sysroot=true symbol_level=1"
export CEF_ARCHIVE_FORMAT=tar.bz2# 對于 Apple Silicon Mac 額外添加
# export GN_DEFINES="is_component_build=true"

4.2 執行更新腳本

cd ~/code/chromium_git
./update.sh

📢 重要提示:

  • 源碼下載過程可能需要幾個小時
  • 確保有穩定的網絡連接
  • 需要大約 150GB 的磁盤空間
  • 下載過程中可能出現斷點續傳

5. 源碼管理

5.1 驗證源碼結構

# 檢查目錄結構
ls -la ~/code/chromium_git/chromium/src
ls -la ~/code/chromium_git/cef

5.2 目錄說明

  • chromium/src:Chromium 源碼
  • cef:CEF 源碼
  • chromium/src/cef:CEF 構建目錄

6. 常見問題處理

6.1 網絡問題

# 設置 git 代理
git config --global http.proxy http://proxy.example.com:8080# 斷點續傳
# 重新運行 update.sh 腳本,會從斷點繼續

6.2 空間問題

如果磁盤空間不足:

  1. 清理其他不必要的文件
  2. 使用外部存儲設備
  3. 確保至少有 150GB 可用空間

6.3 權限問題

# 修復權限問題
sudo chown -R $(whoami) ~/code/chromium_git
chmod -R u+w ~/code/chromium_git

7. 結語

通過本文的操作,我們已經完成了 CEF 源碼的獲取和準備工作。這個過程雖然看起來簡單,但是正確的配置和足夠的耐心是成功的關鍵。確保所有步驟都準確執行,這將為后續的編譯工作打下堅實的基礎。

在下一篇文章《CEF127 編譯指南 MacOS 篇 - 配置編譯環境(六)》中,我們將繼續介紹如何配置編譯環境,包括設置特定的 SDK 版本和編譯參數等內容。讓我們繼續這個循序漸進的 CEF 編譯之旅。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63794.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63794.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63794.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

梳理你的思路(從OOP到架構設計)_設計模式Factory Method模式

目錄 1、Factory Method模式 2、范例&#xff1a; Android FM(工廠)模式 3、Android里處處可見的FM模式的應用 1、Factory Method模式 誰來創建<T>的對象呢?例如&#xff0c; 剛才的Template Method模式內含一個EIT造形&#xff0c;那麼&#xff0c; 請問&#xff…

tauri桌面應用開發入門

簡介 tauri是一款基于web的桌面應用前端框架 因為使用webviews渲染,而不是像electron自帶一個瀏覽器內核,所以打包之后的空間更小,十幾mb 前端界面使用web,可以采取流行的框架,入react,vue等 前端后臺采用rust,彌補前端無法直接訪問操作系統,常用于訪問本地文件系統 官方中…

selenium 報錯 invalid argument: invalid locator

環境&#xff1a; Python3.12.2 selenium4.0 報錯信息&#xff1a; invalid argument: invalid locator 錯誤分析&#xff1a; selenium語法錯誤,find_element方法少寫By.XPATH參數 錯誤語法如下&#xff1a; driver.find_element(//div[id"myid"]) 解決辦…

ESP8266 WiFi模塊入門:搭建網絡與測試實踐

在物聯網&#xff08;IoT&#xff09;應用中&#xff0c;設備聯網是核心功能之一。而ESP8266串口WiFi ESP-01模塊是一款低成本、功能強大的UART-WiFi透傳模塊&#xff0c;廣泛應用于智能家居、工業控制等領域。本篇文章將從基礎出發&#xff0c;講解如何使用ESP8266模塊進行WiF…

框架問題學習

1、gin 1.1、gin框架路由是怎么處理的 在 Gin 中&#xff0c;路由是通過 gin.Default() 或 gin.New() 創建的 *gin.Engine 對象來管理的。gin.Default() 是 gin.New() 的一個封裝&#xff0c;它在創建路由對象時會自動添加一個默認的中間件&#xff08;如日志記錄、恢復中間件…

Java模擬Mqtt客戶端連接Mqtt Broker

Java模擬Mqtt客戶端基本流程 引入Paho MQTT客戶端庫 <dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.mqttv5.client</artifactId><version>1.2.5</version> </dependency>設置mqtt配置數據 …

電子電氣架構 --- 隊列刷寫場景及刷寫上位機淺析

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 所謂雞湯,要么蠱惑你認命,要么慫恿你拼命,但都是回避問題的根源,以現象替代邏輯,以情緒代替思考,把消極接受現實的懦弱,偽裝成樂觀面對不幸的…

springboot根據租戶id動態指定數據源

代碼地址 碼云地址springboot根據租戶id動態指定數據源: springboot根據租戶id指定動態數據源,結合mybatismysql多數源下的事務管理 創建3個數據庫和對應的表 sql腳本在下圖位置 代碼的執行順序 先設置主數據庫的數據源配置目標數據源和默認數據源有了主庫的數據源&#xff…

C++簡明教程(文章要求學過一點C語言)(3)

一、編程工具大揭秘——IDE 當我們準備踏入 C 編程的奇妙世界時&#xff0c;首先要認識一個重要的“魔法盒子”——集成開發環境&#xff08;IDE&#xff09;。IDE 就像是一個全能的編程工作室&#xff0c;它把我們寫代碼所需要的各種工具都整合到了一起&#xff0c;讓編程這件…

達夢官方工具 SQLark數據遷移(oracle->達夢數據庫)

應國產化需求需要,需將系統中涉及的各中間件替換成國產中間件,此文介紹了從Oracle遷移數據至達夢dm8的步驟,該文在windos環境下已驗證測試過 1 SQLark介紹 SQLark是一款專為信創應用開發者設計的數據庫開發和管理工具。它支持快速查詢、創建和管理多種類型的數據庫系統&#xf…

【JAVA】JAVA接口公共返回體ResponseData封裝

一、JAVA接口公共返回體ResponseData封裝&#xff0c;使用泛型的經典 例子 public class ResponseData<T> implements Serializable { /** * */ private static final long serialVersionUID 7098362967623367826L; /** * 響應狀態碼 */ …

AlipayHK支付寶HK接入-商戶收款(PHP)

一打開支付寶國際版 二、點開商戶服務 三、下載源碼

【Prompt Engineering】6 文本擴展

一、引言 文本擴展&#xff1a;將短文本輸入到大型語言模型中&#xff0c;生成更長的文本。應用場景&#xff1a;頭腦風暴、生成電子郵件或論文等。風險&#xff1a;可能被用于生成垃圾郵件。使用原則&#xff1a;負責任地使用&#xff0c;確保有益于人們。技術準備&#xff1…

nginx學習總結(不包含安裝過程)

1. nginx常見配置 http服務上支持【若干虛擬主機】。每個虛擬主機對應一個server配置項&#xff0c;配置項里面包含該虛擬主機相關的配置。 server{listen 80 default;server_name www.yonqin.com;index index.html index.htm index.php;root /data/www;location ~ .*\.(gif|…

CSS系列(29)-- Scroll Snap詳解

前端技術探索系列&#xff1a;CSS Scroll Snap詳解 &#x1f4dc; 致讀者&#xff1a;探索流暢滾動體驗 &#x1f44b; 前端開發者們&#xff0c; 今天我們將深入探討 CSS Scroll Snap&#xff0c;這個強大的滾動優化特性。 基礎特性 &#x1f680; 容器設置 /* 基礎滾動…

如何設計高效的商品系統并提升擴展性:從架構到實踐的全方位探索

在現代電商、零售及企業資源管理系統中&#xff0c;商品管理無疑是核心模塊之一。隨著市場的變化與企業規模的擴展&#xff0c;商品系統需要具備強大的功能支持以及高效的擴展能力&#xff0c;以應對日益復雜的業務需求。一個設計良好的商品系統不僅僅是一個商品信息的容器&…

RFdiffusion get_torsions函數解讀

函數功能 get_torsions 函數根據輸入的原子坐標(xyz_in)和氨基酸序列(seq),計算一組主鏈和側鏈的扭轉角(torsions)。同時生成備用扭轉角(torsions_alt),用于表示可以鏡像翻轉的幾何結構,并返回掩碼(tors_mask)和是否平面化(tors_planar)的信息。 輸入參數 xyz…

docker springboot 運維部署詳細實例

環境安裝 [rootiZbp1dcnzq7pzpg9607m6pZ ~]# docker -v Docker version 26.1.4, build 5650f9b鏡像構建 Dockerfile 文件內容 FROM openjdk:8 # Author Info 創建人信息 MAINTAINER ratelcloudfoxmail.com ENV PORT20001 EXPOSE 20001 RUN mkdir /usr/local/ratel-boot-serv…

貪心算法在背包問題上的運用(Python)

背包問題 有n個物品,它們有各自的體積和價值,現有給定容量的背包,如何讓背包里裝入的物品具有最大的價值總和? 這就是典型的背包問題(又稱為0-1背包問題),也是具體的、沒有經過任何延伸的背包問題模型。 背包問題的傳統求解方法較為復雜,現定義有一個可以載重為8kg的背…

【ArcGIS Pro微課1000例】0063:處理無人機數據(空三、生成DOM、DSM、DTM)

使用ArcGIS Pro 正射拼接處理無人機數據流程化工具,不需要額外產品許可的支持,只需要桌面是高級版許可即可支持。ArcGIS Pro處理無人機攝影測量數據主要內容有:空三、生成DOM、DSM、DTM。 文章目錄 一、創建映射項目二、提交自由空三三、添加控制點優化四、提交產品生產一、…