從原始碼編譯Monero GUI錢包

Monero是一個開源專案,換句話說所有程式原始碼都會在GitHub上公開任人審閱與取用
那到底該怎麼用呢?
程式從原始碼到可以執行的程式之間需要一個編譯(compile)的過程 以下就是如何從GitHub自行編譯GUI錢包的過程教學

本教學適用在Windows 7, 10 的64位元系統 記憶體需求建議為8GB,硬碟空間15GB

將使用Monero在GitHub上目前最新的釋出版本(v0.11.0.0)進行編譯

教學開始

http://www.msys2.org/ 下載 msys2 x64 安裝
安裝後啟動MSYS2 MSYS 輸入指令更新元件

$ pacman -Syu

強制關閉視窗後,從開始程式集中的捷徑再次啟動MSYS2 MSYS 輸入指令繼續更新元件

$ pacman -Su

接著輸入指令安裝編譯所需要的環境與工具,這會需要下載7-8GB的檔案的空間和時間

$ pacman -S mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake git tar mingw-w64-x86_64-qt5

關閉 MSYS2 MSYS 視窗改以 MSYS2 MinGW 64-bit 啟動 輸入指令下載boost版本1.64並解壓縮

$ wget http://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2 --no-check-certificate
$ tar xjf boost_1_64_0.tar.bz2
$ cd boost_1_64_0

輸入指令安裝boost至mingw中,這會需要花一點時間

$ ./bootstrap.sh mingw
$ ./b2 --prefix=/mingw64/boost --layout=tagged --without-mpi --without-python toolset=gcc address-model=64 variant=debug,release link=static threading=multi runtime-link=static -j$(nproc) install

完成後用cd指令回到根目錄

$ cd

接著用git指令從GitHub下載Monero-core,也就是GUI錢包的原始碼
其中 –branch 指令是用來指定要下載特定tag版本,

如果你想要編譯最新還未釋出的版本,可以不加這個指令

$ git clone --branch v0.11.0.0 --depth 1 https://github.com/monero-project/monero-core.git

用cd指令進到monero-core原始碼的目錄中

$ cd monero-core

接著我們需要修改一個檔案讓編譯時可以抓到正確的dll版本
這個動作可以繼續用指令介面vim或是直接到C:\msys64\home\user\monero-core原始碼目錄內用記事本開啟修改

以下用vim編輯器介紹,用記事本的話修改內容相同
輸入指令用vim開啟monero-core原始碼目錄中的windeploy_helper.sh

$ vim windeploy_helper.sh

進入vim介面後按下i進入編輯模式
分別將兩行ICU_FILE後面三個dll的檔名數字都由57改為58
按下ESC退出編輯模式
輸入:wq後即會存檔退出vim
接著就可以輸入以下指令開始編譯

$ ./build.sh

若沒有出現錯誤訊息的話就可以進到build目錄進行deploy

$ cd build
$ make deploy

完成後編譯好的monero GUI錢包程式就會出現在build\release\bin資料夾裡嘍!
若你的msys2是安裝在C槽的話路徑就會是在C:\msys64\home\user\monero-core\build\release\bin
進到目錄後啟動monero-wallet-gui.exe,若能正常開啟錢包程式就恭喜你,成功啦!