我是 riak 和使用 scons 构建库的新手。我从https://github.com/ajtack/riak-cpp.git下载 cpp 库。我在 ubuntu 64 上。这是我的 gcc 版本:
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
从命令提示符输入:
> scons .
所以……我是不是对 scons 做错了什么?或者是代码问题。
以下是我得到的错误;
scons: Building targets ...
(compile) build/riak/client.cxx
In file included from ./riak/client.hxx:2:0,
from build/riak/client.cxx:1:
./riak/message.hxx:29:28: error: ‘error_code’ is not a member of ‘std’
./riak/message.hxx:29:76: error: functional cast expression list treated as compound expression
./riak/message.hxx:29:77: error: template argument 1 is invalid
./riak/message.hxx:29:86: error: invalid type in declaration before ‘;’ token
build/riak/client.cxx: In member function ‘void riak::client::delete_object(const riak::key&, const riak::key&, riak::delete_response_handler)’:
build/riak/client.cxx:95:105: error: cannot convert ‘std::_Bind<bool (*(std::function<void(const std::error_code&, const std::basic_string<char>&, const std::basic_string<char>&)>, std::basic_string<char>, std::basic_string<char>, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(std::function<void(const std::error_code&, const std::basic_string<char>&, const std::basic_string<char>&)>, const std::basic_string<char>&, const std::basic_string<char>&, const std::error_code&, long unsigned int, const std::basic_string<char>&)>’ to ‘riak::message::handler’ in initialization
build/riak/client.cxx: In member function ‘void riak::client::get_object(const riak::key&, const riak::key&, riak::get_response_handler)’:
build/riak/client.cxx:171:70: error: cannot convert ‘std::_Bind<bool (*(std::basic_string<char>, std::basic_string<char>, std::function<std::shared_ptr<RpbContent>(const google::protobuf::RepeatedPtrField<RpbContent>&)>, riak::<unnamed>::delivery_arguments, std::function<void(const std::error_code&, std::shared_ptr<RpbContent>&, std::function<void(const std::shared_ptr<RpbContent>&, std::function<void(const std::error_code&)>&)>&)>, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(const std::basic_string<char>&, const std::basic_string<char>&, std::function<std::shared_ptr<RpbContent>(const google::protobuf::RepeatedPtrField<RpbContent>&)>&, riak::<unnamed>::delivery_arguments&, std::function<void(const std::error_code&, std::shared_ptr<RpbContent>&, std::function<void(const std::shared_ptr<RpbContent>&, std::function<void(const std::error_code&)>&)>&)>, const std::error_code&, long unsigned int, const std::basic_string<char>&)>’ to ‘riak::message::handler’ in initialization
build/riak/client.cxx: In function ‘riak::message::handler riak::<unnamed>::make_resolution_response_handler(std::shared_ptr<RpbContent>&, riak::<unnamed>::resolution_response_handler_for_object)’:
build/riak/client.cxx:246:63: error: cannot convert ‘std::_Bind<std::function<bool(std::shared_ptr<RpbContent>&, const std::error_code&, long unsigned int, const std::basic_string<char>&)>(std::shared_ptr<RpbContent>, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>)>’ to ‘riak::message::handler’ in return
build/riak/client.cxx: In function ‘void riak::<unnamed>::put_cold(const riak::key&, const riak::key&, const std::shared_ptr<RpbContent>&, riak::<unnamed>::delivery_arguments&, riak::put_response_handler&)’:
build/riak/client.cxx:350:107: error: cannot convert ‘std::_Bind<bool (*(std::function<void(const std::error_code&)>, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(std::function<void(const std::error_code&)>, const std::error_code&, long unsigned int, const std::basic_string<char>&)>’ to ‘riak::message::handler’ for argument ‘3’ to ‘void riak::<unnamed>::send_put_request(RpbPutReq&, riak::<unnamed>::delivery_arguments&, riak::message::handler)’
scons: *** [build/riak/client.o] Error 1
scons: building terminated because of errors.