houshangling 2017-08-07 08:33 采纳率: 50%
浏览 1483
已采纳

centos7编译snmp++ 32bit的问题

在centos7系统上编译snmp++,由于诸多原因,需要编译出32bit的libsnmp.so。但是遇到如下错误:

 libtool: link: g++ -m32 -pthread -o .libs/snmpNext snmpNext.o  -L/tmp/third_lib/snmp++/lib /opt/srcs/660_develop/third_lib/snmp++/snmp_src/build/src/.libs/libsnmp++.so /usr/gcc-7.1/lib/../lib/libstdc++.so -lm -pthread -Wl,-rpath -Wl,/usr/gcc-7.1/lib/../lib
/opt/srcs/660_develop/third_lib/snmp++/snmp_src/build/src/.libs/libsnmp++.so: undefined reference to `des_ncbc_encrypt'
/opt/srcs/660_develop/third_lib/snmp++/snmp_src/build/src/.libs/libsnmp++.so: undefined reference to `des_ede3_cbc_encrypt'
/opt/srcs/660_develop/third_lib/snmp++/snmp_src/build/src/.libs/libsnmp++.so: undefined reference to `des_key_sched'
collect2: error: ld returned 1 exit status

生成makefile的配置命令:

 ../configure --enable-macaddress --without-ssl --without-tomcrypt  CCFLAGS=-m32 CPPFLAGS=-m32 CXXFLAGS=-m32 CFLAGS=-m32 LDFLAGS=-L/tmp/third_lib/snmp++/lib

des_ncbc_encrypt、des_ede3_cbc_encrypt和des_key_sched三个函数是libdes库中的函数,在上面的命令中没有加--with-des选项,如果加上了,报错如下:

 checking if libdes is wanted... (cached) yes
checking if libdes wants a prefix... (cached) /tmp/third_lib/libdes
checking if libdes is in /usr/local... no
checking if libdes is in /usr... no
checking if libdes is wanted... (cached) yes
checking if libdes wants a prefix... (cached) /tmp/third_lib/libdes
checking if libdes is in /usr/local... no
checking if libdes is in /usr... no

无论把libdes.a文件拷贝/usr,/usr/local目录,都报错,找不到。只好不用--with-des选项,然后在include/snmp_pp/config_snmp_pp.h中打开HAVE_LIBDES的预编译开关。。

libdes库,编译前修改了Makefile文件,在CFLAGS后加了-m32选项。编译完成后,得到libdes.a文件,也没有libdes.so文件。

最上面的问题,感觉像是没有找到libdes.a文件,但不知道该如何设置。

不知道哪位前辈解决过这个问题,请不吝赐教,多谢

  • 写回答

2条回答 默认 最新

  • houshangling 2017-08-12 07:16
    关注

    最后的解决方法:
    1.先编译出libdes.a
    2.编译snmp++时,不适用--with-des选项,然后make,只不过最后生成libsnmp++.so时仍然报错,但此时生成了libsnmp++.a文件
    3.把libsnmp++.a文件放到项目所有目录中,可以正确的链接,运行时也没有搜索libsnmp++.so文件

    先这样,后面有时间研究一下编译的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵