1. 程式人生 > >net-snmp交叉編譯時問題總結

net-snmp交叉編譯時問題總結

遇到的問題:


一、配置出錯
錯誤如下:    
./configure --build=i686-linux --host=arm-linux  CC=arm-arago-linux-gnueabi-gcc --disable-ipv6 --with-endianness=little --disable-manuals --disable-ucd-snmp-compatibility --enable-as-needed --disable-embedded-perl --without-perl-modules --disable-snmptrapd-subagent --disable-applications --disable-scripts  --prefix=/usr/local/arm-netsnmp --disable-static --enable-shared

make後出錯:
mibgroup/disman/schedule/schedCore.lo: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
make[1]: *** [libnetsnmpmibs.la] 錯誤 1
make[1]:正在離開目錄 `/home/zb/ruanjianbao/net-snmp-5.3.1/agent'
make: *** [subdirs] 錯誤 1

解決方法:把CC=arm-arago-linux-gnueabi-gcc放在./configure之前配置
如下:
CC=arm-arago-linux-gnueabi-gcc ./configure --prefix=/usr/local/arm-netsnmp --build=i386-linux --host=arm-linux --enable-mini-agent --disable-ipv6 --with-endianness=little --disable-manuals --disable-ucd-snmp-compatibility --enable-as-needed --disable-embedded-perl --without-perl-modules --disable-snmptrapd-subagent --disable-applications --disable-scripts --disable-static --enable-shared

上述問題解決後
二、編譯出錯
make後出錯:
/usr/bin/ld: cannot find -lnetsnmp
collect2: error: ld returned 1 exit status
make[2]: *** [../blib/arch/auto/NetSNMP/default_store/default_store.so] 錯誤 1
make[2]:正在離開目錄 `/home/zb/ruanjianbao/net-snmp-5.3.1/perl/default_store'
make[1]: *** [subdirs] 錯誤 2
make[1]:正在離開目錄 `/home/zb/ruanjianbao/net-snmp-5.3.1/perl'
make: *** [perlmodules] 錯誤 1

問題原因:找不到動態庫
解決方法:
sudo find / -name libnetsnmp.* //找到庫檔案的位置

sudo cp /usr/local/snmp3/lib/* /usr/lib/  //複製到系統的庫目錄下


三、測試出錯:
如果提示如下錯誤:

snmpget: error while loading shared  libraries: libnetsnmp.so.30:

cannot open shared object file: No such file or  directory

       
提示缺少2個動態庫檔案,解決方法:

cp  /usr/local/lib/libnetsnmpmibs.so.30 /usr/lib 和

cp  /usr/local/lib/libnetsnmpmibs.so.30 /usr/lib