ffmpeg cross可以很好地为aarch64编译,但是当与我的项目链接时,可以使用通用ELF(EM:62)进行重定位

时间:2019-08-29 03:26:01

标签: gcc ffmpeg compilation cross-platform

这是我配置ffmpeg的方式:

/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a(allcodecs.o): Relocations in generic ELF (EM: 62)
../../../deps/ffmpeg/build/desktop/aarch64/lib/libavcodec.a: error adding symbols: File in wrong format

它可以编译。然后,当我尝试将我的项目与此已编译的ffmpeg链接时,它会给我

--cross-prefix

在这个答案中:https://stackoverflow.com/a/23185739/10116440他说CC丢失了。我也没有使用CC,但是CC是否应该与--cross-prefix=arm-linux-gnueabi-相同?

我还在他说我应该使用aarch64的地方找到了http://lakm.us/logit/2012/11/cross-compiling-ubuntu-arm-ffmpeg/,在我的情况下,手臂应该是aarch64-linux-gnueabi-。但是,没有aarch64-linux-gnu-工具链,只有amd64。可能是问题吗?我想不是,因为eabi看起来像是32位的

值得注意的是,我在aarch64上构建了ffmpeg,但使用静态库在 MyClass myClass = mock(MyClass.class); 上构建了项目。

0 个答案:

没有答案