2

ここにあるGoogleのlibvpxエンコーダーの例をコンパイルしようとしています:

http://www.webmproject.org/docs/vp8-sdk/example__simple__encoder.html

残念ながら、libvpx には依存関係がないようです。

/usr/local/lib/libvpx.a(rdopt.c.o): In function `vp8_initialize_rd_consts':
(.text+0x3519): undefined reference to `pow'
/usr/local/lib/libvpx.a(onyx_if.c.o): In function `vp8_create_compressor':
(.text+0x34a8): undefined reference to `log'
/usr/local/lib/libvpx.a(psnr.c.o): In function `vp8_mse2psnr':
(.text+0x1f): undefined reference to `log10'
/usr/local/lib/libvpx.a(postproc.c.o):(.text+0xa4): undefined reference to `exp'
/usr/local/lib/libvpx.a(postproc.c.o): In function `vp8_gaussian':
(.text+0x11d2): undefined reference to `exp'
/usr/local/lib/libvpx.a(firstpass.c.o):(.text+0x539): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o):(.text+0x5b6): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o):(.text+0x8cb): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o):(.text+0xb52): undefined reference to `sqrt'
/usr/local/lib/libvpx.a(firstpass.c.o):(.text+0xca3): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_init_second_pass':
(.text+0x22b2): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_init_second_pass':
(.text+0x2376): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x26c6): undefined reference to `log'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x26df): undefined reference to `log'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x26f6): undefined reference to `log'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x2f39): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x300e): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x3790): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x387d): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x3c6d): undefined reference to `pow'
/usr/local/lib/libvpx.a(firstpass.c.o):(.text+0x486f): more undefined references to `pow' follow
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x7208): undefined reference to `sqrt'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x7264): undefined reference to `sqrt'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x72b8): undefined reference to `sqrt'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x7330): undefined reference to `sqrt'
/usr/local/lib/libvpx.a(firstpass.c.o): In function `vp8_second_pass':
(.text+0x73c1): undefined reference to `sqrt'

私は Fedora 18 x64 を使用しており、ソース (make + make install) から libvpx をビルドしたので、すべてが整っているはずです。この問題に遭遇した他の人はいますか?

4

2 に答える 2

1

libvpx と静的にリンクしていますか? -lvpx を使用して動的にリンクできます。この問題には遭遇しませんでした (ubuntu 12.10、x64、ソースからビルドされた vpx、gcc 4.7.2)。

いずれにせよ、pow、exp、sqrt などは、コンパイラに付属の数学ライブラリである libm の一部であるため、リンカ フラグに -lm を追加するだけで、これらのエラーは解消されます。

于 2013-06-27T17:17:33.703 に答える
0

数学ライブラリ -lm へのリンクがありません

于 2013-11-11T17:15:47.660 に答える