我正在尝试运行 LibSourcey 以使用 Webrtc 流服务器。
问题是我似乎无法让它发挥作用。
我努力在我的 Ubuntu 16.04 上 cmake 该项目(cmake 文件中的正则表达式),但现在它已修复。
我实际上遇到的问题是编译时的共享对象错误:
usr/bin/ld: /home/kimmie/ffmpeg_build/lib/libswresample.a(options.o):
relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object;
recompile with -fPIC
/home/kimmie/ffmpeg_build/lib/libswresample.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
av/CMakeFiles/av.dir/build.make:783: recipe for target 'av/libscy_av.so.1.0.2' failed
任何帮助将非常感激,因为我现在不知道该怎么办。
我遇到了同样的错误Ubuntu 16.04
.
我最终使用标志重新编译 FFmpeg 来构建共享库。按照中的代码示例框进行操作FFmpeg 编译指南 http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu,我在适用的 ./configure 行中添加了以下两个标志:
我删除了--disable-shared
旗帜也是如此。
I added --enable-pic
and --enable-shared
到每个组件,如果它返回一条消息,表明该组件无法识别它,则删除该标志。至少需要 libx264、libfdk-acc 和 libmp3lame --enable-shared。然后是最终的 FFmpeg(从上面链接的 FFmpeg 指南复制并粘贴):
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-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 \
--enable-shared
请注意,我的示例中的最后两行与 FFmpeg 不同
指导。
完成所有这些操作后,最好删除 Libsourcey 源和构建文件夹,然后重新开始。
我花了大约 4-5 天的时间才最终编译并成功构建了具有 FFmpeg 和 WebRTC 依赖项的 Libsourcey。我还遇到了其他一些障碍,所以如果您有其他问题,请务必标记我。注意:我是 Linux 构建方面的菜鸟,对所有概念并不熟悉;这正是对我有用的方法,也许对你也有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)