1. 程式人生 > >Mac eos 環境搭建

Mac eos 環境搭建

一個 php 官方 令行 手動 遇到 boost oos apple

最近EOS官網出了文檔,說可以跑通一個獨立測試的節點了。這周嘗試自行搭建了一下,由於自己不完全做mac下的開發,且這玩意是C寫的,所以make起來遇到不少坑,記錄下來。附完整踩坑、填坑記錄。

1. 搭建環境

mac下大家應該都用brew來管理包吧。首先官方說要安裝:

  • Boost 1.64
  • OpenSSL
  • LLVM 4.0

通過下面命令,可以盡可能全的安裝編譯環境:

另外需要安裝的下面這個,brew並沒有,需要手動安裝:

  • secp256k1-zkp (Cryptonomex branch)

步驟如下:

2. 編譯LLVM和clang來支持智能合約運行的WASM環境

默認安裝的LLVM和clang並不會包含WASM模塊,所以需要自行編譯,下面是實現僅僅編譯LLVM只會生成WASM模塊。

3. 獲取EOS源碼

遞歸取下來所有的EOS及其模塊代碼:

如果你沒有帶--recursive標誌,可以運行下面的命令來抓下來需要的模塊(這個命令我沒有試,使用時,要看是不是需要進到目錄內):

4. 使用WASM編譯器完整編譯EOS源碼

需要配置WASM_LLVM_CONFIG環境變量來找到上面構建的WASM的編譯器。這個編譯器是用來編譯eos/contracts下的合約例子,和相應的測試用例的。

上面的cmake ..會遇到一些坑,可參考使用第7節中完整填坑後的cmake腳本。

5. 創建並運行一個測試網節點

進入到編譯目錄

運行上述命令後會立即報錯,按Ctrl C強制中止後,命令運行目錄下,會生成默認的./data-dir/

目錄,目錄下有./data-dir/config.ini配置。可以略微看看默認的配置,再啟動就好了(這裏相當於沒有配置,幫你生成了默認配置,所有人都一樣,不安全):

如果要支持命令行,在config.ini下,添加下述配置。參見 https://eosio.github.io/eos/group__eosc.html

這樣,就可以通過EOS自己的命令行工具eosc來進行交互,如下:

輸出效果:

6. 可能遇到的坑

6.1 可能遇到GMP包找不到的報錯:

解決辦法:

6.2 可能遇到ssl相關的錯

但明明已經安裝,原因是由於新版mac已經移除了openssl,所以我們需要手動配置環境變量,可以在cmake的命令行中通過-D

的方式傳入OPENSSL_ROOT_DIROPENSSL_LIBRARIES兩個環境變量:

6.3 最後的聯接時失敗Link failed

第一種,使用brew install llvm後會遇到下面的報錯:

解決辦法,配置環境變量:

另一種可能,是手動安裝llvm遇到下面的報錯:

初步懷疑這種是因為在第2節中,使用的是默認的llvm編譯了,但卻後續又使用手動安裝的llvm進行後續操作導致的。故統一使用brew管理的llvm

完整的解決過程,參考這裏:https://github.com/EOSIO/eos/issues/99

7. 完整的cmake腳本供參考

感謝您的支持

Mac eos 環境搭建