Yocto x86-64平台交叉编译SNMP

configure配置

./configure \
    --prefix=${INSTALL_DIR} \
    --build=x86_64-linux \
    --host=x86_64-poky-linux \
    --enable-shared \
    --with-default-snmp-version="3" \
    --enable-ipv6 \
    --with-openssl \
    --enable-mfd-rewrites \
    --with-logfile="/cfg/var/log/snmpd.log" \
    --with-persistent-directory="/cfg/var/net-snmp" \
    --disable-manuals \
    --disable-ucd-snmp-compatibility \
    --enable-as-needed \
    --with-mib-modules="ucd-snmp/diskio" \
    --without-kmem-usage \
    ac_cv_header_linux_ethtool_h=no \
    --disable-embedded-perl \
    --with-openssl=${SDKTARGETSYSROOT}/usr/lib

make后报错

/usr/bin/ld: cannot find /lib/libm.so.6
/usr/bin/ld: cannot find /lib/libmvec.so.1
collect2: error: ld returned 1 exit status
Makefile:459: recipe for target '../blib/arch/auto/NetSNMP/default_store/default_store.so' failed
make[2]: *** [../blib/arch/auto/NetSNMP/default_store/default_store.so] Error 1
make[2]: Leaving directory '/net-snmp-5.7.3/perl/default_store'
Makefile:484: recipe for target 'subdirs' failed
make[1]: *** [subdirs] Error 2
make[1]: Leaving directory '/net-snmp-5.7.3/perl'
Makefile:295: recipe for target 'perlmodules' failed
make: *** [perlmodules] Error 1

解决方案

x86_64-poky-linux-gcc -print-file-name=libm.so.6执行后结果为:libm.so.6,说明该工具链不能正确找到sysroot路径,需要手动显式指定。x86_64-poky-linux-gcc --sysroot=/intel-corei7-64/v2.0.3/sysroots/corei7-64-poky-linux/ -print-file-name=libm.so.6执行后结果为:/intel-corei7-64/v2.0.3/sysroots/corei7-64-poky-linux/lib/../lib/libm.so.6,说明工具链能够正常工作了。

对于make后找不到libm.so.6和libmvec.so.1的情况,只需找到对应Makefile,对应的地方添加--sysroot=/intel-corei7-64/v2.0.3/sysroots/corei7-64-poky-linux/即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值