eosio.cdt eosio-cpp `GLIBCXX_3.4.22' not found 的解决方法

eosio.cdt从1.2 升级到1.4.1 后, 编译合约

$eosio-cpp -o hello.wasm hello.cpp --abigen

出现下面的提示:

/usr/opt/eosio.cdt/1.4.1/bin/clang-7:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:version `GLIBCXX_3.4.22' not found

(required by/usr/opt/eosio.cdt/1.4.1/bin/clang-7)

查找libstdc++.so.6中GLIBCXX的版本信息得到如下结果:

开始按照eosio repo(https://github.com/EOSIO/eosio.cdt/issues/284)中方法尝试更新libstdc++6

$ sudo apt-get update

$ sudo apt-get install libstdc++6

更新完成后,运行eosio-cpp, 错误依旧,后来从https://forum.linuxgameconsortium.com/t/libstdc-so-6-version-glibcxx-3-4-22-not-found-fix/316

找到解决方法,记录如下:

$sudo add-apt-repository ppa:ubuntu-toolchain-r/test

$sudo apt-get update

$sudo apt-get install gcc-4.9

$sudo apt-get upgrade libstdc++6  //这条命令要执行十几分钟

上面的命令执行完成后,执行下面的命令更新包依赖

$ sudo apt-get dist-upgrade

几分钟过后,上面的命令执行完毕,再次查看GLIBCXX的版本,得到更新后的结果:

接下来可以顺利运行eosio-cpp:

$ eosio-cpp -o hello.wasm hello.cpp –abigen

warning, emptyricardian clause file

备注:实际上从eosio. cdt 1.3就开始出现这种问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 准备工作 跟以太坊不同,EOS引入了Account账户,Wallet钱包,钱包密码,权限,等众多概念,理清楚这些概...
    V_爱一世春秋阅读 760评论 0 0
  • 废话不多说,直接上手,对于EOS安装有两种,一种源码安装,一种利用docker安装 使用 Docker 适合在本地...
    V_爱一世春秋阅读 2,139评论 2 2
  • 一挽清愁梦中藏 宿命得失总牵强 世间风雨有晴日 独钓人生又何妨
    拾殇F_H阅读 208评论 0 0
  • 秋 夜长 炎暑退 枫叶渐红 萧条黄叶落 我们携手出游 裹着暖暖的阳光 迎着清风习习微凉 谈过去现在未来趣事 看风景...
    沐枫暖阅读 256评论 0 0
  • “妈,给我煮杯牛奶呗,这样兴许我会睡个好觉。”这是中国孩子都会触及的物品,牛奶,它是由奶牛身上汲取,然后通常会人工...
    一个不再想张宇晴的人阅读 357评论 0 0