如何解决Scrt1.o:交叉编译mesa3d lib中通用ELFEM:62问题中的重定位
我正在尝试使用 Meson 和 ninja for imx8(nitrogen 8) 交叉编译 mesa3D(20.0.8) 库。我使用 ubuntu 20.04 作为构建机器。我得到了 aarch64-poky-linux-gcc 无法编译程序错误。我正在共享介子日志文件和交叉文件
介子日志.txt:
Build started at 2021-07-20T11:47:51.224602
Main binary: /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/python3
Python system: Linux
The Meson build system
Version: 0.51.2
Source dir: /mnt/Workspace/mesa-20.0.8_arm
Build dir: /mnt/Workspace/mesa-20.0.8_arm/builddir
Build type: cross build
Program python found: NO
Program python2 found: YES (/usr/bin/python2)
Running command: /usr/bin/python2 bin/meson_get_version.py
--- stdout ---
20.0.8
--- stderr ---
Project name: mesa
Project version: 20.0.8
Appending CFLAGS from environment: ' -O2 -pipe -g -feliminate-unused-debug-types '
Appending LDFLAGS from environment: '-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed'
No CPPFLAGS in the environment,not changing global flags.
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc -O2 -pipe -g -feliminate-unused-debug-types -Wl,--as-needed -pipe -D_FILE_OFFSET_BITS=64 /mnt/Workspace/mesa-20.0.8_arm/builddir/meson-private/sanitycheckc.c -o /mnt/Workspace/mesa-20.0.8_arm/builddir/meson-private/sanitycheckc.exe
Sanity check compile stdout:
-----
Sanity check compile stderr:
-----
Running test binary command: /mnt/Workspace/mesa-20.0.8_arm/builddir/meson-private/sanitycheckc.exe
C compiler for the build machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
Appending CXXFLAGS from environment: ' -O2 -pipe -g -feliminate-unused-debug-types '
Appending LDFLAGS from environment: '-Wl,not changing global flags.
Sanity testing C++ compiler: c++
Is cross compiler: False.
Sanity check compiler command line: c++ -O2 -pipe -g -feliminate-unused-debug-types -Wl,--as-needed -pipe -D_FILE_OFFSET_BITS=64 /mnt/Workspace/mesa-20.0.8_arm/builddir/meson-private/sanitycheckcpp.cc -o /mnt/Workspace/mesa-20.0.8_arm/builddir/meson-private/sanitycheckcpp.exe
Sanity check compile stdout:
-----
Sanity check compile stderr:
-----
Running test binary command: /mnt/Workspace/mesa-20.0.8_arm/builddir/meson-private/sanitycheckcpp.exe
C++ compiler for the build machine: c++ (gcc 9.3.0 "c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
Sanity testing C compiler: /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc
Is cross compiler: True.
Sanity check compiler command line: /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc --sysroot=/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux -B /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux -Wl,--as-needed -pipe -D_FILE_OFFSET_BITS=64 /mnt/Workspace/mesa-20.0.8_arm/builddir/meson-private/sanitycheckc.c -o /mnt/Workspace/mesa-20.0.8_arm/builddir/meson-private/sanitycheckc_cross.exe
Sanity check compile stdout:
-----
Sanity check compile stderr:
/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/9.2.0/ld: /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/lib/Scrt1.o: Relocations in generic ELF (EM: 62)
/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/9.2.0/ld: /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/lib/Scrt1.o: Relocations in generic ELF (EM: 62)
/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/9.2.0/ld: /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/lib/Scrt1.o: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
-----
meson.build:21:0: ERROR: Compiler /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc can not compile programs.
交叉文件.txt:
[binaries]
c = '/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc'
cpp = '/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++'
ar = '/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar'
strip = '/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-strip'
pkgconfig = '/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/pkg-config'
exe_wrapper = '/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/qemu-aarch64'
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm'
endian = 'little'
[build_machine]
system = 'linux'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[properties]
sys_root = "/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux"
c_args = ['--sysroot=/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux','-B /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux']
cpp_args = ['--sysroot=/opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux','-B /opt/b2qt/3.0.2/sysroots/x86_64-pokysdk-linux']
环境变量和库路径已经处理好了。任何人都可以建议我解决这个问题。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。