Apache HAWQ 中的编译错误。找不到位置
Compile error in Apache HAWQ. Cannot find the location
我正在尝试将 Apache HAWQ 安装到我的节点上。我参考了 Apache HAWQ wiki 页面 (https://cwiki.apache.org/confluence/display/HAWQ/Build+and+Install) 并成功完成了所有必需的依赖模块,包括 Hadoop、boost、thrift 等
接下来的步骤是安装 Apache HAWQ,以下是命令。
git clone https://git-wip-us.apache.org/repos/asf/incubator-hawq.git
# The code directory is incubator-hawq.
CODE_BASE=`pwd`/incubator-hawq
cd $CODE_BASE
# Run command to generate makefile.
./configure
make -j8
# Install HAWQ
make install
但是,当我 运行 ./configure
并且我收到错误消息说 ..
.....
checking for snappy-c.h... yes
checking for library containing snappy_max_compressed_length... -lsnappy
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking thrift/protocol/TBinaryProtocol.h usability... no
checking thrift/protocol/TBinaryProtocol.h presence... no
checking for thrift/protocol/TBinaryProtocol.h... no
configure: error: thrift is required
虽然我使用configure && make && make install
安装并编译了thrift,但是shell命令找不到thrift库。
所以我输入了 find \ -name 'TBinaryProtocol.h*'
来查找安装了 thrift 相关模块的位置。我收到以下消息。
[root@hawq1 incubator-hawq]# find / -name 'TBinaryProtocol.h*'
/usr/local/include/thrift/protocol/TBinaryProtocol.h
/root/Downloads/thrift-0.9.1/lib/cpp/src/thrift/protocol/TBinaryProtocol.h
/root/Downloads/thrift-0.9.1/lib/cocoa/src/protocol/TBinaryProtocol.h
/root/Downloads/hawq/thrift-0.9.1/lib/cpp/src/thrift/protocol/TBinaryProtocol.h
/root/Downloads/hawq/thrift-0.9.1/lib/cocoa/src/protocol/TBinaryProtocol.h
这意味着我有 thrift 模块,我认为它们已正确安装在我的目录中。我按照 Apache wiki 页面建议的说明输入 ldconfig -p /root/Downloads/hawq/thrift-0.9.1/lib/
.
但是我得到了同样的错误。最后我搜索了 configure.log 文件,发现了下面的消息,表明它找不到 thrift 模块的位置。
configure:10377: checking thrift/protocol/TBinaryProtocol.h usability
configure:10377: g++ -c -g -O2 -D_GNU_SOURCE conftest.cpp >&5
conftest.cpp:76:45: fatal error: thrift/protocol/TBinaryProtocol.h: No such file or directory
#include <thrift/protocol/TBinaryProtocol.h>
如何解决这个问题?非常感谢任何帮助。
也许你可以尝试使用 yum 安装 thrift。
我不认为你的 thrift 安装路径是 /root/Downloads/hawq/thrift-0.9.1/lib/
。
你可以试试 /usr/local/include/thrift
吗?
我正在尝试将 Apache HAWQ 安装到我的节点上。我参考了 Apache HAWQ wiki 页面 (https://cwiki.apache.org/confluence/display/HAWQ/Build+and+Install) 并成功完成了所有必需的依赖模块,包括 Hadoop、boost、thrift 等
接下来的步骤是安装 Apache HAWQ,以下是命令。
git clone https://git-wip-us.apache.org/repos/asf/incubator-hawq.git
# The code directory is incubator-hawq.
CODE_BASE=`pwd`/incubator-hawq
cd $CODE_BASE
# Run command to generate makefile.
./configure
make -j8
# Install HAWQ
make install
但是,当我 运行 ./configure
并且我收到错误消息说 ..
.....
checking for snappy-c.h... yes
checking for library containing snappy_max_compressed_length... -lsnappy
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking thrift/protocol/TBinaryProtocol.h usability... no
checking thrift/protocol/TBinaryProtocol.h presence... no
checking for thrift/protocol/TBinaryProtocol.h... no
configure: error: thrift is required
虽然我使用configure && make && make install
安装并编译了thrift,但是shell命令找不到thrift库。
所以我输入了 find \ -name 'TBinaryProtocol.h*'
来查找安装了 thrift 相关模块的位置。我收到以下消息。
[root@hawq1 incubator-hawq]# find / -name 'TBinaryProtocol.h*'
/usr/local/include/thrift/protocol/TBinaryProtocol.h
/root/Downloads/thrift-0.9.1/lib/cpp/src/thrift/protocol/TBinaryProtocol.h
/root/Downloads/thrift-0.9.1/lib/cocoa/src/protocol/TBinaryProtocol.h
/root/Downloads/hawq/thrift-0.9.1/lib/cpp/src/thrift/protocol/TBinaryProtocol.h
/root/Downloads/hawq/thrift-0.9.1/lib/cocoa/src/protocol/TBinaryProtocol.h
这意味着我有 thrift 模块,我认为它们已正确安装在我的目录中。我按照 Apache wiki 页面建议的说明输入 ldconfig -p /root/Downloads/hawq/thrift-0.9.1/lib/
.
但是我得到了同样的错误。最后我搜索了 configure.log 文件,发现了下面的消息,表明它找不到 thrift 模块的位置。
configure:10377: checking thrift/protocol/TBinaryProtocol.h usability
configure:10377: g++ -c -g -O2 -D_GNU_SOURCE conftest.cpp >&5
conftest.cpp:76:45: fatal error: thrift/protocol/TBinaryProtocol.h: No such file or directory
#include <thrift/protocol/TBinaryProtocol.h>
如何解决这个问题?非常感谢任何帮助。
也许你可以尝试使用 yum 安装 thrift。
我不认为你的 thrift 安装路径是 /root/Downloads/hawq/thrift-0.9.1/lib/
。
你可以试试 /usr/local/include/thrift
吗?