开发工具 使用 CLion IDE 进行开发 EOS 智能合约

lome · March 13, 2018 · Last by penghui86 replied at October 19, 2019 · 8618 hits
本帖已被设为精华帖!

EOS 智能合约:使用 CLion IDE 进行开发

更新(2018-03-05):CMakeLists.txt 现在支持构建 wast 二进制文件。 无需再与 eosiocpp 进行交互,只需在 CLion 中按 Ctrl + F9,即可在几秒钟内准备好构建!

本教程介绍如何为使用 CLion IDE 的 Dawn 2.0 或 Dawn 3.0 设置 EOS 合约开发环境。 为了有效地编写 C ++ 代码,一个好的 IDE 是必须的。 JetBrains 提供 CLion,这是一个好用的 C ++ IDE,支持人们对现代 IDE 期望的所有 “代码洞察” 功能。 CLion 是一款商业产品,但它们也提供免费试用版本。

下载地址:https://www.jetbrains.com/clion/

CLion 使用 CMake 来构建项目,因此,为了开始用 CLion 编约写 EOS 合约,我们需要一个 CMakeLists.txt 文件来指导 CLion 如何执行构建。 用于构建 EOS 合约的 CMakeLists.txt 需要一些特殊配置,因为我们必须使用 wasm32 交叉编译器。

除了使 CLion 正确地解决其依赖关系外,启用 “代码洞察” 功能,CMakeLists.txt 将包含用于构建将合约注入区块链所需的 wast 文件的说明。 这将意味着 CMakeLists.txt 有效地替代传统上用于构建合约的 eosiocpp。

在本指南中,我们将从存储库中提供的 “Hello World” 框架开始,首先手动构建它,然后将其导入到 CLion 中。

$ git clone https://github.com/ukarlsson/eos-clion-example
Cloning into 'eos-clion-example'...
remote: Counting objects: 22, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 22 (delta 6), reused 19 (delta 3), pack-reused 0
Unpacking objects: 100% (22/22), done.

现在进入目录 eos-clion-example 并注意以下结构:

  • CMakeLists.txt - Cmake 构建的说明
  • src - 智能合约的 cpp 文件
  • include - 智能合约的 hpp 文件

CMakeLists.txt 假定 EOS 及其依赖项的默认位置。 如果这些组件位于自定义位置,则必须相应地修改 CMakeLists.txt。 要在 EOS Dawn 2.0 和 EOS Dawn 3.0 之间切换,请更改变量 EOSIO_DAWN 的值。 项目的名称也可以通过更改 CMakeLists.txt 中的项目(...)语句来更改,它目前设置为 hello。

下一步是测试与 CMake 建立合约。 这个构建 hello.wast 二进制文件。 因此,创建一个构建目录,输入它,然后执行 cmake 并最终执行 make:

$ mkdir -p build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain.cmake ..
-- The CXX compiler identification is Clang 4.0.1
-- Check for working CXX compiler: /home/ukarlsson/opt/wasm/bin/clang++
-- Check for working CXX compiler: /home/ukarlsson/opt/wasm/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ukarlsson/eos-clion-example/build
$ make
Scanning dependencies of target link
[ 25%] Building CXX object CMakeFiles/link.dir/src/hello.cpp.o
[ 50%] Linking CXX shared library liblink.so
[ 50%] Built target link
Scanning dependencies of target wast
[ 75%] Generating hello.s
[100%] Generating hello.wast
[100%] Built target wast
Scanning dependencies of target assembly
[100%] Built target assembly

上面的输出表明构建成功。 构建的最终输出是 hello.wast 二进制文件。

现在,我们准备在 CLion 中开启我们的项目! 选择文件➜导入项目...,然后打开项目。 为了使构建成功,需要对设置进行一些重要调整。 选择文件➜设置➜构建,执行,部署➜CMake 并进行以下调整:

  • Set Build type to Release
  • Set CMake options to -DCMAKE_TOOLCHAIN_FILE=Toolchain.cmake

eoscontract.png

该项目现在应该构建在 CLion 中,并且 “代码洞察” 功能应该可以正常运行,如下面的屏幕截图所示。

contract.png

翻译自: https://steemit.com/eos/@ukarlsson/eos-contracts-development-with-the-clion-ide

strahe 将本帖设为了精华贴 25 Mar 19:39

这个对开发者应该非常有帮助。

@strahe

嗯嗯!是的,我电脑上的本地环境有点乱,稍后在 linux 试一试。

赞!翻译的太快了,英语水平惊人。

我在 Mac 上试了一下,有不少的路径要修改。目前 insight 可以使用,build 还没有成功。等都成功了考虑写一个 Mac 上的。

3.0 似乎不支持

lome 回复

应该不会不支持 3.0 吧

现在貌似支持 3.0 了 但是试了一下没有 build 成功。 有人能分享一下 Mac 上的 CMakeList 路径吗?

futou 回复

mac 的教程有写么 ? 😭

ccc 回复

同求 怎样都没法 build 成功

linux 上有 Clion?

hashaki 回复

有的

lome CLion IDE 开发 EOS 3.0 智能合约使用指南 中提及了此贴 15 Apr 09:31
ccc 回复

老哥,你这边后来有在 Mac 上面运行成功吗?

ClownQiang 回复

https://eosfans.io/topics/290

最近这个工具更新了,支持了 3.0,可以试试。

eos 代码和 clion 都放在 window 下,也可以编译和调试吧?

lome CLion IDE 开发 EOS 3.0 智能合约使用指南 中提及了此贴 24 Apr 04:15
lome 回复

这个现在支不支持最新版本 1.1.0?有没有对应链接?

make 后报错

请问这个怎么解决

lan 回复

我用的是 vscode

lome 回复

谢谢,已经解决了

li 回复

支持吗

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up