需要一些关于在windows上启用libvpx的情况下编译ffmpeg。以下是我所遵循的步骤和我所犯的错误
ffmpeg是一个建筑罚款,但它不包括libvpx。config.log如下所示:
./ from .NEscC1Fm/test.c(4):警告C4311:“类型强制转换”:从“vpx_codec_iface_t *(__cdecl *)(__cdecl)”到“long”的指针截断
./compat/windows/mslink /usr/local/lib -nologo -I/usr/local/include -libpath:/usr/local/lib -out:./mslink.NEscC1Fm/test.exe./mslink.NEscC1Fm/test.o vpx.lib
链接:警告LNK4044:无法识别的选项‘/IC 64/usr/local/include’;忽略lib.obj(vp8_vp8_dx_iface.obj):lib.obj .netmodule或用/GL找到编译的模块;用/LTCG重新启动链接;将/LTCG添加到链接命令行以提高链接器性能
链接:警告LNK4044:无法识别的选项‘/IC:/msys64 64/usr/local/include’;被忽略
链接:警告LNK4098: defaultlib 'MSVCRT‘与其他库冲突;使用/NODEFAULTLIB:library lib.obj(vpx_mem_vpx_mem.obj):错误LNK2001:未解决的外部符号__imp_malloc lib.obj(vp8_decoder_threading.obj):错误LNK2001:未解决的外部符号__imp__beginthreadex lib.obj(vp8_decoder_decodeframe.obj):错误LNK2001:未解决的外部符号__imp_fopen ./ fatal .NEscC1Fm/test.exe:致命错误LNK1120: 3个未解决的外部符号
我的msys2安装在C:/msys2 2/和/home/分别与C/msys2 2/home对应,如果我使用-L=“-L/home/usr/local/lib”,则链接器将其遍历为/LC:/msys2 2/usr/local/lib,因此失败。
一步一步的指南在这里是非常感谢的。
发布于 2021-06-12 12:32:01
第一个问题是,编译后的库名为vpxmd.lib,但是ffmpeg试图使用vpx.lib。
另一个问题是msvcrt未解决的外部符号。
尝试从以下位置更改ffmpeg的configure文件中的一些行:
VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs"
至:
VPX_IMG_FMT_HIGHBITDEPTH" "-lvpxmd -lmsvcrtd $libm_extralibs $pthreads_extralibs"
然后把你的vpxmd.lib放在ffmpeg根部。
https://stackoverflow.com/questions/58258896
复制相似问题