这是正在发生的事情。我正在尝试设置 OpenSceneGraph,但是在制作过程中遇到了以下错误(添加空格以便于阅读):
/usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `ff_a64_muxer' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavformat.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/build.make:291: recipe for target 'lib/osgPlugins-3.4.0/osgdb_ffmpeg.so' failed
make[2]: *** [lib/osgPlugins-3.4.0/osgdb_ffmpeg.so] Error 1
CMakeFiles/Makefile2:6663: recipe for target
'src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/all' failed
make[1]: *** [src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
此错误不会停止 cmake 进程。稍后(上述错误发生在 39%,进程在 46% 处失败),我收到此错误:
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
然后该过程停止。
我查看了其他一些解决方案,但他们没有我需要的东西(这里和这里)。我已经使用 -fPIC 标志运行了 cmake,但这并没有解决任何问题。
我在这里找到了一个潜在的解决方案,但我不知道如何实现“重新编译您的 FFmpeg/libavcodec/libavformat 并启用 pic”。任何人都可以通过它告诉我或给我一个很好的资源吗?我以前从未做过,我不想弄乱我的电脑。
任何帮助将非常感激。提前致谢!