導航:首頁 > 源碼編譯 > chromium編譯

chromium編譯

發布時間:2022-02-25 07:56:24

『壹』 如何徹底關閉chromium host executable進程

我的操作系統是 debian sarge,其中已經有 mingw32 編譯器,只需安裝:

apt-get install mingw32這會安裝好 mingw32 交叉編譯系統,用 i586-mingw32msvc-gcc 即可為 Windows 編譯程序。

在編譯 wxWidgets 的 Windows 版本之前,需要安裝 DirectX 的頭文件。大概是由於版權之類的原因,在 Debian的 mingw32 中並未包含 DirectX 的頭文件,只包含了 DirectX 的庫,因此需要自己安裝。如果不安裝,在編譯wxWidgets 的時候會有警告,並且系統不會產生 wxDisplay 這個類。安裝並不復雜,只要從網路上找到相關的頭文件和庫文件,並解壓
/usr/i586-mingw32msvc 目錄中即可。

然後就可以編譯 wxWidgets 了,下載並解壓源碼後,用如下命令可以編譯:

./configure --host=i586-mingw32msvc --target=i586-mingw32msvc --prefix=~/Workshop/mingw32 --enable-monolithic --disable-shared
make; make install-strip
make -C contrib; make -C contrib install-strip

編譯完成後,進入 samples 目錄,隨便找一個常式 make 一下,便可產生 exe 文件了。要執行這個文件,需要mingwm10.dll 這個文件,在 Debian 中,此文件位於 /usr/share/doc/mingw32-runtime目錄中,把它復制到當前目錄,便可用 wine 執行了。如果沒有問題,也可以把這個文件仍到 Wine 的 C:\Windows\system32目錄中。

『貳』 如何在windows上編譯Chromium 並加入MP3支持

我的操作系統是 debian sarge,其中已經有 mingw32 編譯器,只需安裝: apt-get install mingw32這會安裝好 mingw32 交叉編譯系統,用 i586-mingw32msvc-gcc 即可為 Windows 編譯程序。 在編譯 wxWidgets 的 Windows 版本之前,需要安裝 DirectX 的頭文件。大概是由於版權之類的原因,在 Debian的 mingw32 中並未包含 DirectX 的頭文件,只包含了 DirectX 的庫,因此需要自己安裝。如果不安裝,在編譯wxWidgets 的時候會有警告,並且系統不會產生 wxDisplay 這個類。安裝並不復雜,只要從網路上找到相關的頭文件和庫文件,並解壓到/usr/i586-mingw32msvc 目錄中即可。 然後就可以編譯 wxWidgets 了,下載並解壓源碼後,用如下命令可以編譯: ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc --prefix=~/Workshop/mingw32 --enable-monolithic --disable-shared make; make install-strip make -C contrib; make -C contrib install-strip 編譯完成後,進入 samples 目錄,隨便找一個常式 make 一下,便可產生 exe 文件了。要執行這個文件,需要mingwm10.dll 這個文件,在 Debian 中,此文件位於 /usr/share/doc/mingw32-runtime目錄中,把它復制到當前目錄,便可用 wine 執行了。如果沒有問題,也可以把這個文件仍到 Wine 的 C:\Windows\system32目錄中。

『叄』 如何快速獲取Chromium源碼和編譯

1.下載depot_tools
注意:不要使用拖拽和復制粘貼的方式從壓縮包中提取文件,否則」.git」隱藏文件夾下的文件不會被提取出來。「.git」文件夾是depot_tools自動更新的必要文件。你可以使用解壓工具的「解壓文件…」操作。

環境變數設置,給個圖更直觀:
管理員許可權用戶:

修改PATH系統變數,在最後增加depot_tools的路徑地址,如:C:\workspace\depot_tools.

非管理員用戶:

添加PATH用戶變數:在用戶變數點擊新建,增加PATH變數名,變數值為depot_tools的路徑地址,如上圖。

2.安裝git和python
如果你已經手動安裝了msysgit和python,則跳過這一步。
從命令行到保存chromium源碼的路徑下,運行命令:gclient。第一次運行,gclient將會安裝所有和獲取源碼相關的工具,例如git,python:
Fetching
fromhttps://src.chromium.org/svn/trunk/tools/third_party/svn_bin.zip
fatal:
unable toaccess 'https://chromium.googlesource.com/chromium/tools/depot_tools.git/':Failed connect to chromium.googlesource.com:9217; No error
Cannot
rebase:You have unstaged changes.
Please
commit orstash them.
Failed
to updatedepot_tools.
如果遇到上述問題,應該是你無法連接到chromium伺服器,你可以使用vpn或者代理。

注意:
1)如果你在cygwin或者PowerShell等非命令行窗口運行gclient時,有可能能正常運行,但是msysgit,python和其他工具可能不會正確安裝。
2)在首次運行gclient時,如果看到和文件系統相關的很奇怪的錯誤,你可以去這里找答案:

http://tortoisesvn.tigris.org/faq.html#cantmove2.
3)如果你在windows xp上運行,並且看到像下面的錯誤:「The system cannotexecute the specified program」, 請安裝

「Microsoft Visual C++ 2008 RedistributablePackage」.

3.git設置
Git安裝後需要一些設置

如果你從來沒有用過git,還是先網路一下git的使用方法,至少知道一些簡單的操作命令。

*在獲取代碼之前,確認git,python,depot_tools已經加入環境變數中。
4.獲取代碼
1)獲取主幹代碼:到達保存chromium代碼的路徑,直接右鍵git bash,輸入$ fetch --nohooks chromium --nosvn=true開始獲取主幹代碼:

這個過程比較慢,估計下載需要幾個小時時間,慢的話也許十幾個小時,所以大家最好把這一步放在晚上睡覺時進行。

2)獲取主幹分支標簽(版本)信息:
切換至src目錄下:
git fetch --tags >>tags.txt 2>&1 //標簽號42.0.2311.61會保存在tags.txt文件中
git checkout -b chrome_42.0.2311.61_local_branch 42.0.2311.61
gclient sync --with_branch_heads --jobs 16

以上命令的解析大家都可以在命令的幫助裡面查到。
至此,代碼已經被下載到各位的硬碟中,通過git命令就可以看到分支及標簽情況。今天先講這么多,下次會把編譯過程提供給大家。
註:拉取代碼的過程可能很長,取決於使用的vpn的質量;最後代碼拉取成功但是執行runhooks的時候腳本可能會失敗,至於是否影響chrome的編譯,那就只能看運氣了。

附:
chromium源碼channel:
canary
channel:實驗版本,每日發布。它沒有經過充分測試,可能有某些奇怪的bug。
dev
channel:每2星期發布,相對穩定,新功能和新特性都有。
beta
channel:每周更新,6周大版本更新。比較穩定了,比dev版小1個版本,比stable版本早進化一個月。
stable
channel:穩定版,比dev版本小2個版本,2到3周次版本更新,6周主版本更新。

『肆』 chromium與webkit哪個快

chromium是webkit內核,但是webkit默認使用的是javascript core的腳本引擎,而chromium改用v8引擎,從腳本執行上來說 chromium 應該比原生的 webkit 更快一些

『伍』 如何獲取最新chromium源碼

獲取代碼
dev.chromium.org/developers/how-tos/get-the-code 上已經寫清楚了如何獲取代碼。現在統一都是用git了。
首要要配置好depot_tools。chromium會用depot_tools去獲取代碼。這個基本上按著文檔來。因為中國的網路問題,獲取
chromium代碼經常失敗,這里強力推薦用vpn。有些公司會屏蔽vpn,比如我們公司。這里只能用IE代理了,但是chromium獲取代碼很多地
方沒有走IE代理,這里需要我們自己去hook下腳本了,我曾經寫過如何設置代理的博客。這種方法太麻煩。
獲取代碼現在真是簡單,就一句 fetch chromium,然後慢慢等吧,會下載十幾GB的數據。只要把網路問題解決了,獲取代碼還是比較順利的,否則就是無法跨越的大坑。

『陸』 如何只生成 chrome.sln 工程文件以便編譯 chromium

一,編譯之前的准備。
1) 了解代碼組織結構。
Chrome source非常龐大,並且在其主目錄下還包含有工具和組件,任何一個工具和組件也附帶有其源代碼。首先得熟悉這些源代碼的組織結構,在http://src.chromium.org/svn/中包含如下子目錄:releases,曾經發布過的chrome源代碼的正式版本;trunk,當前最新的源代碼。由於releases中的代碼比較舊,這里就不做說明了,只說明trunk的結構。在trunk下面有3個重要的目錄,deps包含了chrome編譯和運行所需要的全部組件的代碼。src裡麵包含的則是chrome的主程序的代碼,tools包含的是下載和配置編譯所需要的第三方工具的壓縮包和源代碼,其中就有svn和python這2個比較重要的工具,後面再詳細介紹。暫時做這樣一個簡單的介紹,因為其組織結構比較負責,以後再作補充斧正。

2)如何下載和同步源代碼。
首先談談下載:
1,最簡單的方法是從chrome官網上直接下載源代碼壓縮包,地址是http://build.chromium.org/buildbot/archives/chromium_tarball.html。

2,或者採用svn從http://src.chromium.org/svn/trunk/src這個地方heckout,這要求你先在本地建一個源代碼的主目錄。

3,另外一個辦法則是採用google提供的一個部署工具depot_tools。雖然這幾種辦法都可下載完整的源代碼,但目前的情況是:chrome基於Visual Stdio 2005 進行編譯,如果順利完成編譯工作,自然少不了sln文件,較早的源代碼中包含有現成的sln和vcproject文件,但後來做了修改,這些文件被拋棄掉,Google自己開發了一種腳本工具叫做GYP,這個工具採用python編寫,GYP採用了自定義的一套規則,用於生成各種工程文件。而關鍵的python則包含於depot_tools中,因此不論採用什麼方法下載的代碼,都得下載depot_tools這個工具,以獲得必須的工程文件。
depot_tools位於 http://src.chromium.org/svn/trunk/tools 下面,包括一個目錄和一個zip格式的壓縮包。

3)關於編譯器
前面提到Chrome採用Visual Stdio 2005進行編譯,根據http://dev.chromium.org的說明,需進行如下操作正常編譯
a, 安裝Visual Studio 2005.
b, 安裝Visual Studio 2005 Service Packe 1.
c, 安裝Visual Studio Hotfix 947315.
d, 如果是vista系統,還需安裝Visual Studio 2005 Service Packe 1 Update for Windows Vista.
e, 安裝Windows 2008 SDK,如果是Visual Studio 2008則不需要這一步。
f, 配置Windows 2008 SDK,使2008 SDK成為首選開發庫,以獲得一些新功能和特性。辦法是在開始->程序->Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool,選擇make current按鈕。也可以在VS裡面手動配置include和libary路徑,效果是一樣的。

二,如何配置工程文件
1,如果是採用depot_tools,那麼從代碼下載到生成sln文件會自動完成。其步驟是
(1)下載depot_tools到本地存儲,假設位於d:/depot_tools.
(2)將d:/depot_tools添加到系統環境變數中。
(3)創建一個源代碼根目錄,假設為 d:/chrome,目錄不得包含空格。
(4)在命令行下切換當前目錄到d:/chrome。
(5)執行命令 gclient config http://src.chromium.org/svn/trunk/src ,該命令會首先下載svn和python分別到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。
(6)執行命令 gclient sync 這個命令會調用svn同步源代碼。這個過程會比較漫長。全部完成之後全部源代碼就保存在d:/chrome裡面。未編譯的代碼大約有4個G左右,過程將十分漫長。這樣獲得的源代碼已經包含所有的工程文件,可直接打開。

重點說明一下gclient,它實際上是一個批處理文件,它主要做了如下一些事情,首先設置環境變數,如代碼根目錄,工具根目錄等。其次調用win_tools.bat從伺服器下載svn和python。最後調用python.exe對Chrome.gyp進行解析生成所有工程文件。
另外需要說明的是,gclient sync的過程非常漫長,根據命令行的提示來看總共需要同步67個項目(不是工程),期間可能會因為一些原因導致錯誤而退出這個過程,需要繼續調用sync。比如網路出現故障svn會多次進入sleep狀態然後重試,如果多次失敗就會報錯退出,還有的情況是某些子目錄的屬性問題無法同步,可根據提示進行操作。還有個目前新出現的問題,下面2個目錄「src/webkit/data/layout_tests/LayoutTests」和「src/third_party/WebKit/LayoutTests」的源代碼是從src.webkit.org簽出來的,但是這個網站目前存在問題無法簽出代碼, 需要屏蔽掉這2個目錄,由於裡面是測試代碼,即使丟棄也不會影響整個工程的編譯,方法是打開trunk下面的.gclient文件,向裡面添加如下內容
"custom_deps" : {
"src/webkit/data/layout_tests/LayoutTests":None,
"src/third_party/WebKit/LayoutTests":None,
},

這樣svn就能完成代碼的同步了。最後gclient會調用depot_tools/python_bin/python.exe 對 src/build/gyp_
chromium進行處理,這樣就得到了所有的sln和vcproject文件。

2,如果是下載的代碼壓縮包或者checkout的代碼,代碼目錄裡面沒有sln文件,這個時候需要調用命令行進入源代碼根目錄,然後執行命令 gclient runhooks --force,命令執行後會直接對Chrome.gyp進行解析,生成sln文件。

在實際下載過程中,最開始的時候我用TortoiseSVN從http://src.chromium.org/svn/trunk/src checkout源代碼,但是得到的代碼只有幾百兆,執行gclient runhooks --force命令後也沒有找到sln文件,具體原因未知,不建議使用此方式。而直接下載代碼壓縮包的方式沒有嘗試過,不知道是否可行。因此最穩妥的方法還是使用depot_tools來部署和處理源代碼。

三 編譯工程
啟動Visual Studio 2005打開 src/chrome/browser/chrome.sln,或者打開src/build/all.sln,如果打開的是chrome.sln裡麵包含480個工程,而all.sln則包含507個工程,一些09年的編譯說明提到有300左右的工程,可見chrome的代碼變動比較大。對整個解決方案進行編譯,打開需要2個小時才能完成編譯,視硬體環境而定,內存越大越快,推薦4G以上內存,酷睿2核或者4核。編譯完成以後據說會佔用30G的空間。編譯後的文件位於 d:/chorme/chrome/debug 目錄或者 d:/chorme/chrome/release目錄下。

四 chrome涉及的開源項目

Chrome 採用了很多開源項目,這里把它們列出來以備後用,目前Chrome涉及25個開源代碼:
1、Google Breakpad
/src/breakpad
開源的跨開台程序崩潰報告系統。
2、Google URL
/src/googleurl
Google小巧的URL解析整理庫。
3、Skia
/src/skia
矢量圖引擎。
4、Google v8
/src/v8
Google開源的JavaScript引擎。V8實現了ECMA-262第三版的ECMAScript規范,可運行於Windows XP 和 Vista, Mac OS X 10.5 (Leopard), 及 Linux等基於IA-32 或 ARM 的系統之上。V8可單獨運行也可嵌入到任何C++程序中。
5、Webkit
/src/webki
開源的瀏覽器引擎
6、Netscape Portable Runtime (NSPR)
/src/base/third_party/nspr
Netscape Portable Runtime (NSPR) 提供了系統級平台無關的API及類似libc的函數。
7、Network Security Services (NSS)
/src/base/third_party/nss
Network Security Services (NSS) 一套用於支持伺服器端與客戶端安全開發的跨平台函數庫。程序通過NSS可支持SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 認證及其它一些安全標准。
8、Hunspell
/src/chrome/third_party/hunspell
Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.
9、Windows Template Library
/src/chrome/third_party/wtl
用於開發Windows程序與UI組件的C++ library。WTL擴展了ATL (Active Template Library) 並提供一套用於controls, dialogs, frame windows, GDI objects等開發的類。
10、Google C++ Testing Framework
/src/testing/gtest
Google用於編寫C++測試的基於xUnit架構的框架,可用於多種平台上:Linux, Mac OS X, Windows, Windows CE, and Symbian。支持自動測試發現,有一套豐富的Assertions斷言,用於可自定義斷言,death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.
11、bsdiff 與 bspatch
/src/third_party/bsdiff 及 /src/third_party/bspatch
bsdiff 與 bspatch 用於為二進制文件生成補丁。
12、bzip2
/src/third_party/bzip2
bzip2使用Burrows-Wheeler block sorting text compression 演算法與Huffman編碼壓縮文件。
13、International Components for Unicode (ICU)
/src/third_party/icu38
ICU是一套成熟並被廣泛使用的C/C++ 及 Java 庫,可為軟體提供Unicode與全球化支持。
14、libjpeg
/src/third_party/libjpeg
用於處理JPEG (JFIF)圖像格式的庫。
15、libpng
/src/third_party/libpng
PNG圖像格式庫。支持絕大部分的PNG特性,可擴展。已經被廣泛地使用了13年以上了。
16、libxml
/src/third_party/libxml
C語言的XML解析庫。
17、libxslt
/src/third_party/libxslt
C語言的XSLT庫。
18、LZMA
/src/third_party/lzma_sdk
LZMA為7-Zip軟體中7z格式壓縮所使用的壓縮演算法,有很好的壓縮效果。
19、stringencoders
/src/third_party/modp_b64
一系列高性能的c-string轉換函數,比如:base 64 encoding/decoding。通常比其標准實現快兩倍以上。
20、Netscape Plugin Application Programming Interface (NPAPI)
/src/third_party/npapi
多種瀏覽器使用的跨平台插件架構。
21、Pthreads-w32
/src/third_party/pthread
用於編寫多線程程序的API
22、SCons - a software construction tool
/src/third_party/scons
開源的軟體構建工具——下一代的編譯工具。可以認為SCons是改進過的跨平台配上autoconf/automake與ccache的Make工具的子系統。
23、sqlite
/src/third_party/sqlite
大名鼎鼎的嵌入式資料庫引擎。自管理、零配置、無需伺服器、支持事務。
24、TLS Lite
/src/third_party/tlslite
SSL 3.0, TLS 1.0, and TLS 1.1的Python免費實現庫。TLS Lite支持這些安全驗證方式:SRP, shared keys, and cryptoIDs in addition to X.509 certificates。註:Chrome並不包涵Python。TLS Lite用於Chrome開發過程中的代碼覆蓋、依賴檢查、網頁載入時間測試及生成html結果比較等。
25、zlib
/src/third_party/zlib
zlib為一套用於任意平台與機器的無損數據壓縮的庫,它免費、自由、無任何法律專利問題。

『柒』 chromium版本更新幾乎一小時一個選哪個版本比較穩定,或者說比較好

選穩定的話就選擇chrome就好了,不要去選擇什麼beta版,dev版的就不會出現你說的問題,另外看你說的用什麼「工具更新」,google瀏覽器都是自動更新,不需要什麼其他的工具輔助

『捌』 如何編譯Chrome for android

下載 depot_tools
下載 depot_tools(默認下載到當前用戶主文件夾下的 chromium 子目錄,自行根據需要修改,下載完畢後需要將 depot_tools 的目錄添加到 PATH)
cd ~ mkdir chromium cd chromium git clone chromium.googlesource.com/chromium/tools/depot_tools.git
下載源代碼和編譯所需的第三方工具/庫
fetch --nohooks android --nosvn=True cd src git checkout master # if you are building for Android: ./build/install-build-deps-android.sh gclient sync --nohooks
配置 GYP
~/chromium$ echo "{ 'GYP_DEFINES': 'OS=android', }" > chromium.gyp_env ~/chromium$ gclient runhooks
安裝 Java JDK(如果已經安裝可以跳過)
# 安裝 Open JDK 1.7 ~/chromium$ sudo apt-get install openjdk-7-jdk # 配置為默認 JDK sudo update-alternatives --config javac sudo update-alternatives --config java sudo update-alternatives --config javaws sudo update-alternatives --config javap sudo update-alternatives --config jar sudo update-alternatives --config jarsigner
編譯 Content shell
# 編譯 Release 版本並安裝到手機上 ~/chromium/src$ ninja -C out/Release content_shell_apk ~/chromium/src$ build/android/adb_install_apk.py --apk ContentShell.apk --release # 編譯 Debug 版本並安裝到手機上,Debug 版本可用於調試 ~/chromium/src$ ninja -C out/Debug content_shell_apk ~/chromium/src$ build/android/adb_install_apk.py --apk ContentShell.apk --debug

閱讀全文

與chromium編譯相關的資料

熱點內容
程序員那麼可愛不好看 瀏覽:888
拳擊沙袋可以解壓嗎 瀏覽:303
周末php培訓班 瀏覽:982
戶型公攤面積快速演算法 瀏覽:321
亞洲7衛星加密節目破解 瀏覽:785
什麼相機app濾鏡好用 瀏覽:813
oracle存儲過程提示編譯完 瀏覽:547
頂級程序員出山 瀏覽:365
java獲取指定路徑 瀏覽:175
xampp教程linux 瀏覽:386
壓縮空氣洗車 瀏覽:707
cad中命令zoome 瀏覽:1001
如何改變家長對安卓的偏見 瀏覽:94
微擎伺服器ip地址怎麼查 瀏覽:212
江陰變頻空氣壓縮機品牌 瀏覽:907
家用閑置電腦如何改造為伺服器 瀏覽:404
作業幫加密碼 瀏覽:455
手機怎麼沒有伺服器 瀏覽:68
swift編程軟體 瀏覽:753
php中pathinfo是什麼 瀏覽:71