使用thrift C ++连接HBase

时间:2016-06-28 13:34:38

标签: c++ g++

我想使用C ++语言将行放入HBase。我使用thrift-0.9.3HBase 1.0.3。根据{{​​3}},我已经安装并配置了节俭。

但是当我运行命令时:

g++ -Wall -o hclient main.cpp gen-cpp/Hbase_types.cpp gen-cpp/Hbase_constants.cpp \
    gen-cpp/Hbase.cpp -lthrift

它显示错误(cthbase.cpp是我的文件):

cthbase.cpp:14:38: error: thrift/transport/TSocket.h: No such file or directory
cthbase.cpp:15:48: error: thrift/transport/TBufferTransports.h: No such file or directory
cthbase.cpp:16:45: error: thrift/protocol/TBinaryProtocol.h: No such file or directory
In file included from cthbase.cpp:18:
....

我已将gen-cpp和其他lib复制到我的项目文件夹中,但为什么它找不到这些头文件?

1 个答案:

答案 0 :(得分:0)

张学友。

您的留言:

  

嗨,我是一名中国学生,目前正在为HBase学习节俭C ++   。幸运的是,我找到了你的教程,我按照你的步骤   安装。但是,当我进行编译时会出现问题。   它显示错误:                                                                                                                                                                / usr / bin / ld:找不到-lthrift       collect2:ld返回1退出状态看起来它没有thrift链接库我无法在我的文件中找到libthrift.so文件   / usr / lib甚至无法在我的电脑中找到。所以我想问你是否可以   解决这个问题。非常感谢您的阅读和   回复。       顺便说一下,我也在stackoverflow提出了这个问题,描述可能更详细。有链接:   Error "No such file or directory" occurs when using thrift C++ to connect HBase

     

祝福。

首先,这是工作示例,复制并自行尝试: https://github.com/alexbod/hclient/

在您的情况下,链接器似乎无法找到thrift库(-lthrift)。

最简单的方法是正确地重新安装Thrift。你在用Debian吗?

<强>卸下:

如果您还没有删除安装了thrift的源代码树./configure&amp;&amp;制造&amp;&amp; sudo make install然后只是cd到它和

sudo make uninstall

否则:

git clone <repo>
git checkout <revision you installed>
./configure # if you supplied some additional options to configure while building thrift, add them here too.
sudo make uninstall

<强> Dependies:

sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev

<强>安装:

wget http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.2/thrift-0.9.2.tar.gz
tar xzvf thrift-0.9.2.tar.gz
$ cd thrift-0.9.2/
./configure
make
sudo make install

然后做与Thrift相关的步骤:

http://www.alexbod.com/c-plus-plus-hbase-client/#starting_thrift

http://www.alexbod.com/c-plus-plus-hbase-client/#gen_cpp