使用libvpx编译项目时未定义的引用

时间:2017-06-02 10:58:43

标签: c++ mingw libvpx

我用MSYS构建了libvpx.a和头文件(用于MinGW)。当我尝试编译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文件)?< / p>

1 个答案:

答案 0 :(得分:1)

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

函数die_codecvpx_video_*都来自tools_common.chttps://github.com/webmproject/libvpx/blob/master/tools_common.c)和video_reader.hhttps://github.com/webmproject/libvpx/blob/master/video_reader.c),我认为不是libvpx sdk的核心部分(见这里:http://www.webmproject.org/docs/webm-sdk/files.html)。

为了让您的示例正常工作,您还需要复制粘贴这些文件({1}}和.c文件)并将其包含在.h文件中。