本文主要是介绍ffmpeg 4.2编译出现recompile with -fPIC问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在升级licode的libav库,将它改为ffmpeg 4.2,方便以后的ffmpeg相关的扩展
编译ffmpeg 4.2的libavcodec库时出现如下报错:
/usr/bin/ld: libavcodec/mqc.o: relocation R_X86_64_32 against `.rodata’ can not be used when making a shared object; recompile with -fPIC
libavcodec/mqc.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
-fPIC:表示编译为位置独立的代码
找了很多加 -fPIC的地方,都没有效果。最后在ffmpeg-4.2/ffbuild下面,编辑 config.mak文件:
CPPFLAGS= -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DZLIB_CONST
改成:
CPPFLAGS= -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DZLIB_CONST
即解决问题。
这篇关于ffmpeg 4.2编译出现recompile with -fPIC问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!