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 built from sources, gcc 4.7.2)。

无论如何,pow、exp、sqrt 等都是 libm 的一部分,libm 是编译器附带的数学库,所以只需将 -lm 添加到链接器标志中,这些错误就会消失。

于 2013-06-27T17:17:33.703 回答
0

您缺少链接数学库 -lm

于 2013-11-11T17:15:47.660 回答