Cassandra cpp-driver编译错误

时间:2014-09-11 13:02:01

标签: c++ linux ubuntu cassandra

我正在尝试在Ubuntu中安装Cassandra cpp-driver。 我已完成DataStax C/C++ Driver for Apache Cassandra (Beta)中指定的步骤,但我不断收到以下编译错误。


[ 1%] Building CXX object CMakeFiles/cassandra.dir/src/buffer_collection.cpp.o In file included from /root/libraries/cass_cpp-driver/git2/cpp-driver/src/session.hpp:29:0, from /root/libraries/cass_cpp-driver/git2/cpp-driver/src/types.hpp:22, from /root/libraries/cass_cpp-driver/git2/cpp-driver/src/buffer_collection.cpp:19: /root/libraries/cass_cpp-driver/git2/cpp-driver/src/logger.hpp: In member function 'int cass::Logger::init()': /root/libraries/cass_cpp-driver/git2/cpp-driver/src/logger.hpp:40:59: error: no matching function for call to 'cass::AsyncQueue<cass::MPMCQueue<cass::Logger::LogMessage*> >::init(uv_loop_t*, cass::Logger* const, void (&)(uv_async_t*, int))' int init() { return log_queue_.init(loop(), this, on_log); } ^ /root/libraries/cass_cpp-driver/git2/cpp-driver/src/logger.hpp:40:59: note: candidate is: In file included from /root/libraries/cass_cpp-driver/git2/cpp-driver/src/event_thread.hpp:21:0, from /root/libraries/cass_cpp-driver/git2/cpp-driver/src/session.hpp:20, from /root/libraries/cass_cpp-driver/git2/cpp-driver/src/types.hpp:22, from /root/libraries/cass_cpp-driver/git2/cpp-driver/src/buffer_collection.cpp:19: /root/libraries/cass_cpp-driver/git2/cpp-driver/src/async_queue.hpp:34:7: note: int cass::AsyncQueue<Q>::init(uv_loop_t*, void*, uv_async_cb) [with Q = cass::MPMCQueue<cass::Logger::LogMessage*>; uv_loop_t = uv_loop_s; uv_async_cb = void (*)(uv_async_s*); uv_async_t = uv_async_s] <near match> int init(uv_loop_t* loop, void* data, uv_async_cb async_cb) { ^ /root/libraries/cass_cpp-driver/git2/cpp-driver/src/async_queue.hpp:34:7: note: no known conversion for argument 3 from 'void(uv_async_t*, int) {aka void(uv_async_s*, int)}' to 'uv_async_cb {aka void (*)(uv_async_s*)}' make[2]: *** [CMakeFiles/cassandra.dir/src/buffer_collection.cpp.o] Error 1 make[1]: *** [CMakeFiles/cassandra.dir/all] Error 2 make: *** [all] Error 2

1 个答案:

答案 0 :(得分:1)

我已经修复了Cassandra cpp-driver中的编译错误,通过将libuv下载到版本libuv-0.10,编译错误就会消失。

似乎Cassandra cpp-driver尚未支持libuv的最新更新。