这是发生了什么。我正在尝试设置OpenSceneGraph,但是在make过程中遇到了以下错误(添加了空格以便于阅读):
/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
然后该过程停止。
我已经查看了其他一些解决方案,但他们没有我需要的(here和here)。我用-fPIC标志运行cmake并没有解决任何问题。
我找到了一个潜在的解决方案here,但我不知道如何实现“重新编译你的FFmpeg / libavcodec / libavformat并启用了pic”。谁能跟我说话还是给我一个很好的资源?我以前从未这样做过,我也不想弄乱我的电脑。
非常感谢任何帮助。提前谢谢!