2020-09-05 Windows下编译ffmpeg+libr

2020-09-05  本文已影响0人  Wonton_skin

Q:Windows下编译ffmpeg+librtmp,出现如下无法链接问题。

librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_SetupURL,该符号在函数 rtmp_open 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_Connect,该符号在函数 rtmp_open 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_Socket,该符号在函数 rtmp_get_file_handle 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_ConnectStream,该符号在函数 rtmp_open 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_Init,该符号在函数 rtmp_open 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_Close,该符号在函数 rtmp_close 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_EnableWrite,该符号在函数 rtmp_open 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_Pause,该符号在函数 rtmp_read_pause 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_SendSeek,该符号在函数 rtmp_read_seek 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_Read,该符号在函数 rtmp_read 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_Write,该符号在函数 rtmp_write 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_LogSetCallback,该符号在函数 rtmp_open 中被引用
librtmp.o : error LNK2019: 无法解析的外部符号 RTMP_LogSetLevel,该符号在函数 rtmp_open 中被引用libavformat/avformat-58.dll : fatal error LNK1120: 13 个无法解析的外部命令
make: *** [ffbuild/library.mak:103:libavformat/avformat-58.dll] 错误 96

【解决方案一】修改此ffbuild目录下config.mak、config.sh文件,对于extralibs_avformat变量手动增加库链接方式:“-libpath:D:/msys64/usr/local/lib librtmp.lib”。PS:虽简单粗暴,但行知有效。

【解决方案二】 ---->  此方法在msys2环境下验证未成功,待后续有空再研究下啥原因 @^^@
通过 extra-cflags 指定第三方头文件路径。
通过 extra-ldflags 指定第三方库链接路径。
PS:指定第三方链接库路径时,不同编译器环境下是有差异,这点需要特别注意!!
Windows环境下使用-libpath来指定链接路径:--extra-ldflags=-libpath:D:/msys64/usr/local/lib
linux环境下使用-L来指定链接路径:--extra-ldflags=-L /usr/local/lib

./configure --prefix=./build --toolchain=msvc --arch=x86_64 \
--enable-shared --disable-static --enable-avresample \
--enable-libx264 --enable-gpl --enable-librtmp --enable-nonfree \
--extra-cflags="-I D:/msys64/usr/local/include" \
--extra-ldflags="-libpath:D:/msys64/usr/local/lib"

上一篇 下一篇

猜你喜欢

热点阅读