make / cmake错误:在创建共享对象时,不能使用针对`ff_a64_muxer'的重定位R_X86_64_32

时间:2017-06-21 19:19:49

标签: ffmpeg cmake fpic

这是发生了什么。我正在尝试设置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

然后该过程停止。

我已经查看了其他一些解决方案,但他们没有我需要的(herehere)。我用-fPIC标志运行cmake并没有解决任何问题。

我找到了一个潜在的解决方案here,但我不知道如何实现“重新编译你的FFmpeg / libavcodec / libavformat并启用了pic”。谁能跟我说话还是给我一个很好的资源?我以前从未这样做过,我也不想弄乱我的电脑。

非常感谢任何帮助。提前谢谢!

0 个答案:

没有答案