• 自己動手編譯 Chromium


    自己動手編譯 Chromium

    這篇文章的環境是 Ubuntu 10.04 LTS 64 bit 版本(也就是我目前的桌面),在動手做之前請確定對 Linux 有基本的認識,因為在實作的過程中可能會發生某些突發狀況需要自己動手解決。

    目前 Chromium 原始碼的來源有兩種,一種是下載官方包好的 Source Code Tarball ,解壓縮之後編譯,另一種是從 SVN 版本控制系統取出再編譯。我偏好後者,雖然第一次取出比較慢,但之後可以隨時維持更新。
     
    要取出 Source Code 必須依靠 depot_tools ,可以從這邊下載 depot_tools.tar.gz,完成之後挑選一個目錄解壓縮,並且在 shell 宣告環境變數(例如加到你的 .profile 檔或是 .bashrc 檔,以下這個寫法是假定 depot_tools 解壓縮在自己的家目錄下。):

    1# for google chrome
    2export PATH=`pwd`/depot_tools:"$PATH"

    另外要檢查一下是否有宣告 PKG_CONFIG_PATH ,如果沒有的話,找出 pkgconfig 的路徑,並且宣告。

    1export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

    這樣就可以執行 depot_tools 了,以上算是前置作業,接著是環境的檢查,看看有什麼沒裝的,都裝一下 (for Ubuntu)。

    1sudo apt-get install bison fakeroot flex g++ g++-multilib gperf \
    2  libapache2-mod-php5 libasound2-dev libbz2-dev libcairo2-dev \
    3  libdbus-glib-1-dev libgconf2-dev libgl1-mesa-dev libglu1-mesa-dev \
    4  libglib2.0-dev libgtk2.0-dev libjpeg62-dev libnspr4-dev libnss3-dev \
    5  libpam0g-dev libsqlite3-dev libxslt1-dev libxss-dev \
    6  mesa-common-dev msttcorefonts patch perl pkg-config python \
    7  python2.5-dev rpm subversion libcupsys2-dev libgnome-keyring-dev

    接下來建立一個目錄給 chromium ,例如: /home/roga/chromium 就是個不錯的選擇。以下用 $chromium 代表 chromium 所在的目錄,然後建立 config 檔案:

    執行完畢之後,目錄下會產生一個 .gclient 檔,請編輯這個檔案,然後加上以下敘述,目的是讓取出的過程中忽略 test case (要不然會額外花費很多時間)。


    solutions = [
    { "name" : "src",
    "url" : "http://src.chromium.org/svn/trunk/src",
    "custom_deps" : {
    },
    "safesync_url": "",
    "custom_deps" : {
    "src/third_party/WebKit/LayoutTests": None,
    }
    },
    ]

    接著就可以開始取出原始碼了,這個步驟要花掉不少時間,可以先去喝個飲料散個步:

    1cd $chromium
    2gclient sync

    如果跑到一半有任何錯誤的話,請執行剛剛抓下來的 $chromium/build/install-build-deps.sh 這隻程式,會幫你檢查系統套件的相依性,補足不夠的地方,接著重新執行 gclient sync 應該就會成功了。完成之後,在 $chromium 的目錄下應該開始編譯了。

    1cd $CHROMIUM_ROOT/src
    2make -j5 chrome

    邊完之後,在 $CHROMIUM_ROOT/out 可以看到 binary 檔,直接執行即可。另外可以做一些設定,例如安裝 ccache 增加編譯速度等等,以及 BUILDTYPE (預設是 Debug, 如果改成 Release 則會 optimized 不過編譯時間會增加不少)..等等 ,留待下次討論。最後附上一個有用的連結,可以用 Eclipse 開發 Chromium:Using eclipse as an IDE for developing chromium.

  • 相关阅读:
    CodeForces1214B
    CodeForces1214A
    LuoGuP4551最长异或路径
    GXOI2018 滚粗记
    [BZOJ 4818/LuoguP3702][SDOI2017] 序列计数 (矩阵加速DP)
    [LuoguP3808] 【模板】AC自动机(简单版)数组版
    [NOIP 2016D2T2/Luogu P1600] 天天爱跑步 (LCA+差分)
    [CF160D]Edges in MST (最小生成树+LCA+差分)
    [Luogu P2891/POJ 3281/USACO07OPEN ]吃饭Dining
    [BZOJ 2287/POJ openjudge1009/Luogu P4141] 消失之物
  • 原文地址:https://www.cnblogs.com/lexus/p/2338537.html
Copyright © 2020-2023  润新知