-
Notifications
You must be signed in to change notification settings - Fork 4
编译运行的常见问题
lilymoana edited this page Sep 2, 2017
·
8 revisions
c-dummy 正常启动后,执行 tendermind node
,出现如下错误:
E[08-31|11:13:55.061] abci.socketClient failed to connect to tcp://127.0.0.1:46658. Retrying... module=abci-client connection=query
这是由于 c-dummy 默认绑定的地址端口与 Tendermint 配置文件中的地址端口不一致,三种解决方法:
打开配置文件 ~/.tendermint/config.toml
vim ~/.tendermint/config.toml
将配置文件中 proxy_app
字段的值修改为 c-dummy 程序默认绑定的地址端口:127.0.0.0:46658:
proxy_app = "tcp://127.0.0.1:46658"
保存退出配置文件,重新启动Tendermint程序:
tendermint node
首先查看 ~/.tendermint/config.toml
配置文件中 proxy_app
字段的值,假设值为:
proxy_app = "tcp://127.0.0.1:46677"
那么进入 c-abci/demo 目录中:
cd c-abci/demo
修改main.c文件中的一行代码,原代码为:
strcpy(port, "46658");
修改为:
strcpy(port, "46677");
保存退出,在demo目录下编译:
make
然后重新启动c-dummy和Tendermint程序即可
./c-dummy 127.0.0.1 46677
编译成功,但是启动c-dummy时报错:
error while loading shared libraries: libc-abci.so: cannot open shared object file: No such file or directory
这是由于动态连接库的配置文件中没有添加c-abci/lib的路径,将库的绝对路径添加到配置文件中:
sudo vim /etc/ld.so.conf.d/local.conf
输入用户密码,然后在此配置文件中添加两行数据,此文件如果不存在可以直接新建:
/home/lily/work/c-abci/lib
/home/lily/work/c-abci/type/protobuf-c
退出保存文件即可(注意,这里写的是我的绝对路径,每个人的绝对路径会不一致:/home/lily/work的部分不一样) 修改完配置文件之后,刷新动态库的配置:
sudo ldconfig
刷新完之后,重新启动c-dummy程序即可
在make编译的时候报错:
/usr/bin/ld: cannot find -lc-abci
/usr/bin/ld: cannot find -lencoding
/usr/bin/ld: cannot find -lsocket
/usr/bin/ld: cannot find -ltypes
/usr/bin/ld: cannot find -ldlist
这个原因跟上面c-dummy启动产生的问题是一样的,所以解决方案也是一样,修改配置文件然后刷新:
sudo vim /etc/ld.so.conf.d/local.conf
输入用户密码,然后在此配置文件中添加两行数据:
/home/lily/work/c-abci/lib
/home/lily/work/c-abci/type/protobuf-c
退出保存文件即可(注意绝对路径)
修改完配置文件之后,刷新动态库的配置:
sudo ldconfig
刷新完成之后重新编译即可:在c-abci/目录下:
make