hadoop问题:对‘xdrmem_create’、‘xdr_float’未定义的引用

博客内容提到在使用Hadoop时遇到对`xdrmem_create`和`xdr_float`未定义的引用错误。问题可能与内核版本有关,解决方法包括在LDFLAGS中增加库文件连接和修改静态库的连接地址路径。提到了多个相关链接供参考,涉及CMakeLists.txt和CMakeCache.txt的修改。
[WARNING] /usr/bin/c++   -g -O2 -Wall -pthread -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE    -rdynamic CMakeFiles/wordcount-nopipe.dir/main/native/examples/impl/wordcount-nopipe.cc.o  -o examples/wordcount-nopipe libhadooppipes.a libhadooputils.a -lssl -lcrypto -ldl 
[WARNING] make[2]: 离开目录“/home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/target/native”
[WARNING] make[1]: 离开目录“/home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/target/native”
[WARNING] libhadooputils.a(SerialUtils.cc.o):在函数‘HadoopUtils::serializeFloat(float, HadoopUtils::OutStream&)’中:
[WARNING] /home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/src/main/native/utils/impl/SerialUtils.cc:250:对‘xdrmem_create’未定义的引用
[WARNING] /home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/src/main/native/utils/impl/SerialUtils.cc:250:对‘xdrmem_create’未定义的引用
[WARNING] /home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/src/main/native/utils/impl/SerialUtils.cc:251:对‘xdr_float’未定义的引用
[WARNING] /home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/src/main/native/utils/impl/SerialUtils.cc:251:对‘xdr_float’未定义的引用
[WARNING] libhadooputils.a(SerialUtils.cc.o):在函数‘HadoopUtils::deserializeFloat(float&, HadoopUtils::InStream&)’中:
[WARNING] /home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/src/main/native/utils/impl/SerialUtils.cc:267:对‘xdrmem_create’未定义的引用
[WARNING] /home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/src/main/native/utils/impl/SerialUtils.cc:267:对‘xdrmem_create’未定义的引用
[WARNING] /home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/src/main/native/utils/impl/SerialUtils.cc:268:对‘xdr_float’未定义的引用
[WARNING] /home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/src/main/native/utils/impl/SerialUtils.cc:268:对‘xdr_float’未定义的引用
[WARNING] collect2: 错误:ld 返回 1
[WARNING] make[2]: *** [CMakeFiles/pipes-sort.dir/build.make:88:examples/pipes-sort] 错误 1
[WARNING] make[1]: *** [CMakeFiles/Makefile2:107:CMakeFiles/pipes-sort.dir/all] 错误 2
[WARNING] make[1]: *** 正在等待未完成的任务....

问题分析:
xdrmem_create函数定义在rpc/xdr.h头文件。有时候可能还是内核版本问题,需要更换内核。
解决方法:
使用LDFLAGS增加库文件连接

export LDFLAGS=/usr/lib64/libtirpc.so

修改静态库连接地址路径
/home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/target/native/CMakeFiles/wordcount-nopipe.dir/link.txt
/home/hadoop/hadoop-3.2.1-src/hadoop-tools/hadoop-pipes/target/native/CMakeCache.txt
相关链接:
https://blog.youkuaiyun.com/beizhengren/article/details/77978949
https://www.jianshu.com/p/be38f37b4bd6
https://www.jianshu.com/p/a0c52f22cf31
http://www.studyems.com/network/e62afc909aaa136b.html
https://cp3.irmp.ucl.ac.be/projects/delphes/ticket/374
http://tieba.baidu.com/p/5640392865
https://blog.youkuaiyun.com/wbj0110/article/details/84606177
https://www.cnblogs.com/alexkn/p/4237515.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值