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

lome · March 13, 2018 · Last by penghui86 replied at October 19, 2019 · 8068 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

共收到 20 条回复
strahe 将本帖设为了精华贴 26 Mar 03: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 17:31
ccc 回复

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

ClownQiang 回复

https://eosfans.io/topics/290

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

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

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

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

make后报错

请问这个怎么解决

lan 回复

我用的是vscode

lome 回复

谢谢,已经解决了

li 回复

支持吗

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