【问题标题】:Undefined references when compiling project with libvpx使用 libvpx 编译项目时未定义的引用
【发布时间】:2017-11-03 18:25:56
【问题描述】:

我已经使用 MSYS(用于 MinGW)构建了 libvpx.a 和标头。当我尝试编译 example 时,会出现很多对 vpx 成员的未定义引用:

g++ -m32 -static    -o dist/Debug/MinGW-Windows/test1 build/Debug/MinGW-Windows/main.o -L/D/Libraries/libvpx/ -lvpx
build/Debug/MinGW-Windows/main.o: In function `main':
D:\Projects\CPP_test\Test1/main.cpp:107: undefined reference to `die'
D:\Projects\CPP_test\Test1/main.cpp:109: undefined reference to `vpx_video_reader_open'
D:\Projects\CPP_test\Test1/main.cpp:111: undefined reference to `die'
D:\Projects\CPP_test\Test1/main.cpp:114: undefined reference to `die'
D:\Projects\CPP_test\Test1/main.cpp:116: undefined reference to `vpx_video_reader_get_info'
D:\Projects\CPP_test\Test1/main.cpp:118: undefined reference to `get_vpx_decoder_by_fourcc'
D:\Projects\CPP_test\Test1/main.cpp:120: undefined reference to `die'
D:\Projects\CPP_test\Test1/main.cpp:125: undefined reference to `die_codec'
D:\Projects\CPP_test\Test1/main.cpp:127: undefined reference to `vpx_video_reader_read_frame'
D:\Projects\CPP_test\Test1/main.cpp:132: undefined reference to `vpx_video_reader_get_frame'
D:\Projects\CPP_test\Test1/main.cpp:134: undefined reference to `die_codec'
D:\Projects\CPP_test\Test1/main.cpp:137: undefined reference to `vpx_img_write'
D:\Projects\CPP_test\Test1/main.cpp:144: undefined reference to `die_codec'
D:\Projects\CPP_test\Test1/main.cpp:149: undefined reference to `vpx_video_reader_close'

所有包含制作,lib 已链接... 那我做错了什么?

PS:可能链接libvpx.a文件还不够,我还需要源码自带的.c文件(如果是的话,我不明白.a lib文件需要什么)?

【问题讨论】:

  • 我们也需要见到你main.cpp
  • @MikeKinghan,我的问题中的“示例”一词有一个指向我尝试静态构建的代码的链接。也许libvpx.a中不包含读写webm?如果是这样,我如何在我的应用中创建和读取 webm 文件?

标签: c++ mingw libvpx


【解决方案1】:

看起来您只是从示例中盲目复制和粘贴。

die_codecvpx_video_* 函数都来自 tools_common.c (https://github.com/webmproject/libvpx/blob/master/tools_common.c) 和 video_reader.h (https://github.com/webmproject/libvpx/blob/master/video_reader.c),我认为这不是 libvpx sdk 的核心部分(参见此处:@ 987654323@)。

为了使您的示例正常工作,您还需要复制粘贴这些文件(.c.h 文件)并将它们包含在您的 main.cc 文件中。

【讨论】:

  • 我已经明白了。我认为使用 WebM 的库应该包括读取和写入这种格式文件的函数。欺骗自己...感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 2019-09-05
  • 2013-06-03
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
相关资源
最近更新 更多