内网编译安装net-snmp,提示relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a share

    公司需要在内网环境下(不能访问外网),通用源文件编译安装net-snmp,监控内网服务器的参数信息,但是在编译,即make的情况下,出现了Error,因为对linux的深度使用不是很熟悉,所以经过几天的测试才找到解决办法,下面是错误:

 

   /usr/bin/ld: /usr/local/perl/lib/5.16.3/x86_64-linux-thread-multi/CORE/libperl.a(op.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
/usr/local/perl/lib/5.16.3/x86_64-linux-thread-multi/CORE/libperl.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [libnetsnmpagent.la] 错误 1
make[1]: 离开目录“/home/yinhai/net-snmp-5.5.2/agent”

 

  通过源文件编译安装net-snmp的教程很多,但是测试后很多都失败了,下面的这份教程是自己找到并测试可以成功的,参考这位博主的教程:

https://www.cnblogs.com/yjken/p/3921989.html

自己就是在 make的时候出现了本文中的错误,查找了很多解决办法,最后测试成功的解决如下:

即删除掉错误信息中提示的动态链接库,libperl.a

rm -f /usr/local/perl/lib/5.16.3/x86_64-linux-thread-multi/CORE/libperl.a

删除掉后可以通过 make clean 清除掉 make产生的文件,再次make就可以不报错了,然后继续进行make install;或者删除上面的文件后,直接删除解压后的文件夹,重新解压再次make  make install。

 

通过解决这个bug的过程中体会到,当你经过无数次测试失败后,才是考验自己的时候,再坚持一会,或许下次尝试就可以解决掉这个鞋中小小的磨人沙粒。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

soothings

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值