链接器错误与Hadoop管道

tdp*_*110 1 hadoop pipe linker-errors

Hadoop n00b在这里,刚刚开始使用Hadoop Pipes.我在使用hadoop-0.20.203(当前最新版本)编译一个简单的WordCount示例时遇到链接器错误,该示例在hadoop-0.20.2中没有出现相同的代码

表单链接器错误:HadoopPipes.cc中对"EVP_sha1"的未定义引用.

EVP_sha1(以及我得到的所有未定义引用)都是openssl库的一部分,HadoopPipes.cc来自hadoop-0.20.203,但hadoop-0.20.2没有.

我已经尝试调整我的makefile链接到ssl库,但我还是运气不好.任何想法将不胜感激.谢谢!

PS,这是我目前的makefile:

CC = g++

HADOOP_INSTALL = /usr/local/hadoop-0.20.203.0

SSL_INSTALL = /usr/local/ssl

PLATFORM = Linux-amd64-64

CPPFLAGS = -m64 -I$(HADOOP_INSTALL)/c++/$(PLATFORM)/include -I$(SSL_INSTALL)/include

WordCount: WordCount.cc

    $(CC) $(CPPFLAGS) $< -Wall -Wextra -L$(SSL_INSTALL)/lib -lssl -lcrypto -L$(HADOOP_INSTALL)/c++/$(PLATFORM)/lib -lhadooppipes -lhadooputils -lpthread -g -O2 -o $@
Run Code Online (Sandbox Code Playgroud)

我正在使用的实际程序可以在http://cs.smith.edu/dftwiki/index.php/Hadoop_Tutorial_2.2_--_Running_C%2B%2B_Programs_on_Hadoop找到

Eug*_*ntz 8

这里有同样的问题:回答是将-lcrypto添加到编译命令行:

http://grokbase.com/p/hadoop.apache.org/common-user/2011/06/re-linker-errors-with-hadoop-pipes/09zqdt5grdudu7no7q6k3gfcynpy

这是修补构建过程的补丁:

diff --git src/examples/pipes/Makefile.in src/examples/pipes/Makefile.in
index 17efa2a..1d8af8e 100644
--- src/examples/pipes/Makefile.in
+++ src/examples/pipes/Makefile.in
@@ -233,7 +233,7 @@ AM_CXXFLAGS = -Wall -I$(HADOOP_UTILS_PREFIX)/include \
         -I$(HADOOP_PIPES_PREFIX)/include

LDADD = -L$(HADOOP_UTILS_PREFIX)/lib -L$(HADOOP_PIPES_PREFIX)/lib \
-      -lhadooppipes -lhadooputils
+      -lhadooppipes -lhadooputils -lcrypto


# Define the sources for each program
Run Code Online (Sandbox Code Playgroud)