在编译安装solidity的过程中遇见了一个很奇怪的问题
webthree-umbrella/libethereum/libethereum/Executive.cpp: In member function 'void dev::eth::StandardTrace::operator()(uint64_t, uint64_t, dev::eth::Instruction, dev::bigint, dev::bigint, dev::bigint, dev::eth::VM*, const dev::eth::ExtVMFace*)': /home/vagrant/Code/workspace/webthree-umbrella/libethereum/libethereum/Executive.cpp:81:8: error: unused variable 'returned' [-Werror=unused-variable] bool returned = true; ^ cc1plus: all warnings being treated as errors
好像是说编译的过程中把警告当做错误来处理。然后变量“returned”定义了但没使用,所以造成一个警告,被当成错误处理。
不过查看编译选项好像没有“-Werror=unused-variable”这个选项,没办法只好去webthree-umbrella/libethereum/libethereum/Executive.cpp这个文件中,发现确实定义了一个returned变量,而且只有一次赋值的操作,其他地方完全没用到。
只有把returned声明和赋值的两条语句注释掉就行了
然后重新编译,成功!
测试:
进入webthree-umbrella/build/solidity/solc/目录,有文件solc可执行程序
运行这个就行了