gpt4 book ai didi

FFmpeg 不能与共享库一起编译

转载 作者:行者123 更新时间:2023-12-01 09:52:43 24 4
gpt4 key购买 nike

我跑了./configure FFmpeg 脚本如下:
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-fPIC -m64 -I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-pic --extra-ldexeflags=-pie --enable-shared

当我尝试使用 --enable-shared 编译 FFmpeg 时如上所述的选项,我收到此错误:
/usr/bin/ld: /home/guel/ffmpeg_build/lib/libx264.a(common.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/home/guel/ffmpeg_build/lib/libx264.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status

我添加了 --enable-pic , --extra-ldexeflags=-pie以及 -fPIC -m64--extra-cflags为了摆脱这里建议的重定位错误:https://www.ffmpeg.org/platform.html

但我仍然遇到同样的错误。我需要用 --enable-shared 编译 ffmpeg将它与 OpenCV 接口(interface)的选项,所以我必须在这里找到一个解决方法。

最佳答案

我设法解决了这个问题。实际上,添加 -fPIC--enable-pic应该已经成功了,但我之前愚蠢地用 --disable-shared 编译了依赖库(libx264 和许多其他库)选项,因为我在第一次编译 FFmpeg 时并不关心它,只是盲目地遵循这里的编译指南:https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

使用 --enable-shared 重新编译所有库后选项,FFmpeg 也使用该选项成功编译。

关于FFmpeg 不能与共享库一起编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32785279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com