2007年9月6日木曜日

net-snmpのembeded-perlとld --as-needed

net-snmpのconfigureが、eval_pv, perl_eval_pv, Perl_eval_pvを見つけられなかった。
原因はLDFLAGSの--as-neededでした。

hideaki@akane ~ $ gcc pt.c
/tmp/cc2wn2PW.o: In function `main':
pt.c:(.text+0xd): undefined reference to `Perl_eval_pv'
/tmp/cc2wn2PW.o:(.data+0x0): undefined reference to `Perl_eval_pv'
collect2: ld はステータス 1 で終了しました
hideaki@akane ~ $ gcc -lperl -L/usr/lib64/perl5/5.8.8/x86_64-linux/CORE pt.c
hideaki@akane ~ $ gcc -Wl,--as-needed -lperl -L/usr/lib64/perl5/5.8.8/x86_64-linux/CORE pt.c
/tmp/ccu1yJt3.o: In function `main':
pt.c:(.text+0xd): undefined reference to `Perl_eval_pv'
/tmp/ccu1yJt3.o:(.data+0x0): undefined reference to `Perl_eval_pv'
collect2: ld はステータス 1 で終了しました


hideaki@akane ~ $ gcc -Wl,--as-needed -L/usr/lib64/perl5/5.8.8/x86_64-linux/CORE pt.c -lperl

はいける。

把握している範囲では、PHPとwiresharkでもはまる。



0 件のコメント:

コメントを投稿