首页 > 解决方案 > eosio-ld 的链接问题

问题描述

我正在尝试使用 eosio.cdt 和 cmake 构建我的 EOS 智能合约。
编译成功,但链接失败,日志如下。

/usr/local/eosio.cdt/bin/wasm-ld: error: locale.cpp.o: undefined symbol: strftime_l
/usr/local/eosio.cdt/bin/wasm-ld: error: memory.cpp.o: undefined symbol: __cxa_pure_virtual
/usr/local/eosio.cdt/bin/wasm-ld: error: system_error.cpp.o: undefined symbol: __cxa_pure_virtual

cmake生成的链接模块代码如下。

eosio-ld -L=/usr/local/eosio.cdt/lib/ CMakeFiles/a.wasm.dir/a.cpp.o CMakeFiles/a.wasm.dir/validator/b.cpp.o CMakeFiles/a.wasm.dir/validator/c.cpp.o CMakeFiles/a.wasm.dir/common/d.cpp.o -o a.wasm

libc++.a 存在于 /usr/local/eosio.cdt/lib/ 中。

我该如何解决这个问题?

标签: smartcontractseos

解决方案


只需包含<eosiolib/eosio.hpp>头文件。


推荐阅读