我试图将libvpx构建为一个静态库,稍后将在FFmpeg构建中使用,但遇到了问题。我使用的libvpx版本是1.6.0。
这是我的配置:
./configure--prefix=/home/test/Dev/build-x64/libvpx/--enable static--disable shared--target=x86-linux-gcc
在制作过程中,有很多错误被转储到屏幕上:

[LD] test_libvpx
test/add_noise_test.cc.o: In function `(anonymous namespace)::gtest_CAddNoiseTest_EvalGenerator_()':
add_noise_test.cc:(.text+0x342): undefined reference to `vpx_plane_add_noise_c'
test/add_noise_test.cc.o: In function `(anonymous namespace)::gtest_SSE2AddNoiseTest_EvalGenerator_()':
add_noise_test.cc:(.text+0x492): undefined reference to `vpx_plane_add_noise_sse2'
test/add_noise_test.cc.o: In function `(anonymous namespace)::AddNoiseTest_CheckCvsAssembly_Test::TestBody()':
add_noise_test.cc:(.text+0x2437): undefined reference to `vpx_setup_noise'
add_noise_test.cc:(.text+0x2448): undefined reference to `vpx_calloc'
add_noise_test.cc:(.text+0x245a): undefined reference to `vpx_calloc'
add_noise_test.cc:(.text+0x2779): undefined reference to `vpx_plane_add_noise_c'
add_noise_test.cc:(.text+0x2934): undefined reference to `vpx_free'
add_noise_test.cc:(.text+0x293c): undefined reference to `vpx_free'
(...and a lot more.)

意识到错误是从测试开始的,我尝试禁用单元测试:
./configure--prefix=/home/test/Dev/build-x64/libvpx/--enable static--disable shared--target=x86-linux-gcc--disable unit tests
取而代之的是:
(…很多行…)
[c c]示例/调整大小
[LD]示例/调整大小
示例/resize_util.c.o:In functionmain': resize_util.c:(.text.startup+0x1e8): undefined reference tovp9_resize_frame420'
错误2:LD返回1退出状态
make[1]:*[示例/调整大小实用程序]错误1
make:[.DEFAULT]错误2
我的电脑上有libogg 1.3.1和libvorbis 1.3.2。(不确定它们是否被使用。)
我被难住了,我真的很感激这里的指导。

最佳答案

尽管之前调用过make clean,但早期版本中的一些文件(libs-armv7-linux-gcc.mk)仍然存在。
我决定给它最后一次机会,重新开始在一个新的目录和它的工作。早期生成的文件可能会以某种方式干扰。我应该用make distclean来代替。

关于linux - 构建libvpx时未定义引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39115362/

10-09 03:24