opengl - Scrt1.o:交叉编译 mesa3d lib 中的通用 ELF (EM: 62) 中的重定位问题
问题描述
我正在尝试使用 Meson 和 ninja 为 imx8(氮气 8)交叉编译 mesa3D(20.0.8)库。我正在使用 ubuntu 20.04 作为构建机器。我得到 aarch64-poky-linux-gcc 无法编译程序错误。我正在共享介子日志文件和交叉文件
介子-logs.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,-O1 -Wl,--hash-style=gnu -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,-O1 -Wl,--hash-style=gnu -Wl,--as-needed'
No CPPFLAGS in the environment, 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,-O1 -Wl,--hash-style=gnu -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,-O1 -Wl,--hash-style=gnu -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']
环境变量和库路径已经被注意。谁能建议我解决这个问题。感谢您。
解决方案
推荐阅读
- c# - 后续 http 请求后 TempData 仍然可用吗?
- angular - 如何在 Angular 7 中处理嵌套的 HTTP 请求?
- javascript - 在 map 函数中切换条件语句
- java - File.lastmodified() 生成错误的日期和月份
- c# - 读取一个文本文件,直到一行包含一些字符串文件,然后再次继续读取下一行,直到遇到另一个字符串
- powershell - Start-AzureRmDataFactoryV2Trigger 触发器 XXX 具有意外的资源提供程序:、意外的资源类型,或两者兼有
- android - 如何在xml中隐藏另一个组件后面的布局?
- node.js - 将基本身份验证与 loopback.js 和 ldap 一起使用
- r - 折线图 ggplot - 两条线,来自同一站点/秒的数据点
- python - 使用 python-requests 请求时出现 SSL 错误