上一篇咱們介紹了EOS的專用IDE工具EOS Studio,該工具的優點是簡單,易上手,可是靈活性低,且對系統資源開銷大,依賴多,容易出現功能異常。那麼咱們開發人員最容易使用的,可能仍是深度定製化的IDE,今天咱們介紹若是用強大的VSCode來配置一個EOS的開發環境。java
最簡配置:python
豪華配置:c++
爲了編譯合約,eosio.cdt是必須的,這裏咱們提供兩種安裝的方式,各有優點,直接安裝能夠更方便的使用,可是對於須要使用不一樣cdt版本編譯時,就會很麻煩;而使用docker版的,能夠更好的使用多版本cdt,缺點是與系統集成很差,使用cmake編碼會很麻煩。git
直接安裝能夠參考我前面的文章EOS基礎全家桶(二)安裝中的 CDT-Contract Delevop Tools合約開發工具包 章節。github
若是想使用docker鏡像,能夠看下面使用eosio.cdt的docker鏡像。docker
我不懷疑你已經有了VS Code,甚至已經使用的很熟練了。但若是你尚未,那我要強烈推薦你安裝一個,也許你已經有了其餘語言的IDE,好比.net的Visual Studio,java的IntelliJ Idea……可是你都會有用到VSCode的地方,這是一個免費、開源、集成git、可調試可運行、擁有智能提示和衆多插件的多語言編輯器,你如今在看的文章也是我使用VSCode編輯的,沒錯,它對markdown語法很友好,加上豐富的插件,讓你擁有一款輕量且功能強大的md編輯器。json
好了,安利了這麼久,咱們言歸正傳。打開VSCode的官網,在中間顯眼的地方就能看到Download了,下載你所需的版本,這裏有Stable和Insider的版本,Stable是穩定版,沒有明顯的bug,Insider則是每週迭代更新的嚐鮮版,能更早的用上新功能,可是難免會有些明顯的bug。markdown
VSCode的插件很是豐富,這得力於它的開源策略,創造出了一個良性社區環境。咱們今天只介紹和EOS的智能合約相關的插件,其餘的搭建能夠本身選擇,也可參考網上的各類環境構建的教程。編輯器
咱們合約開發的語言是C++,因此這個庫就基本成必須了。這個庫提供了C語言相關的智能提示和調試等功能。ide
這個不是必須,只是VSCode默認是英文的,而多語言採用的是擴展來安裝,若是你看英文的不太習慣,那麼這個包就是必須的了。
VSCode默認集成了git的功能,可是咱們可讓它更強大,這是一個擴展包,包含了一系列好用的git工具,包括文件、行的歷史記錄,可視化的管理界面等等。
這個插件很實用,特別是當你裝了一堆插件後,你想在多個設備上同步時,它藉助github上的gist功能同步VSCode上的設置,讓你在不一樣的設備上都能同步全部插件和設置。
這個插件其實我沒有徹底使用過,是一個我後來在插件庫中找到的,這是一個藉助python庫中的EOSFactory來實現EOS合約開發的各類自動化功能的插件,有興趣的同窗能夠自行嘗試。
至此其實你已經擁有了一個最簡潔而完備的EOS智能合約開發環境了,若是你須要多cdt版本編譯環境或者你想讓本身有更好的智能提示,那麼下面的配置能夠幫助到你。
咱們能夠直接使用EOS Studio上傳的docker鏡像,咱們打開docker官方的Hub頁面,而後搜索eosio.cdt,找到eostudio下的。
咱們進入查看tags,他的tag都是以cdt的版本命名的,從1.3~1.7都有,很是的良心。
咱們選擇所需的版本進行拉取,建議直接拉取1.6以上的版本,由於咱們後面的智能合約編寫也會基於較新的版本進行講解。
docker pull eostudio/eosio.cdt:v1.6.3
若是你有多個cdt版本的編譯需求,能夠拉取各個版本的鏡像,在後續咱們介紹合約編譯的時候介紹如何使用。
注意: docker相關的安裝和操做,請參考我前面的文章EOS基礎全家桶(一)開篇中的 Docker 章節。
智能提示是基於將引用的文件加載並創建索引後爲咱們提供的便利功能,那麼咱們若是沒有安裝eosio.cdt而是使用的docker鏡像,或者咱們但願能夠直接查看使用的類型或者方法的源碼實現,那麼咱們就須要下載eosio.cdt的源碼,並配置相關的路徑引入。
#直接拉取最新的代碼 git clone https://github.com/EOSIO/eosio.cdt.git
爲了能和咱們實際編譯保持一致,這裏建議你們拉取和你編譯會使用的eosio.cdt相同的版本代碼,就是你安裝或者從docker拉取的鏡像的版本保持一致。
在你的合約開發目錄下新建一個.vscode
文件夾,而後新建一個c_cpp_properties.json的文件,這個文件是C/C++插件會使用到的配置文件。
{ "configurations": [ { "name": "Mac", "includePath": [ "${workspaceFolder}/**", "/Volumes/Disk/PublicGit/eosio.cdt/libraries", "/Volumes/Disk/PublicGit/eosio.cdt/libraries/boost/include" ], "defines": [], "macFrameworkPath": [ "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks" ], "compilerPath": "/usr/bin/clang", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "clang-x64" } ], "version": 4 }
其中includePath就是咱們添加eosio.cdt源碼路徑的配置項,須要將eosio.cdt的libraries和libraries/boost/include都添加上。
其餘的配置請結合自身的實際狀況配置,若不清楚,建議使用${default}
,好比"cppStandard":"${default}"
。更多相關配置,請參考C/C++插件的配置文檔。
咱們已經完成了EOS的智能合約的開發環境的準備,不管你是使用EOS Studio仍是使用VSCode,都可以幫助你進行EOS的智能合約的開發,他們各有千秋,而選擇一個適合你的IDE纔是最重要的。