在fedora 31上交叉编译时找不到crt1.o

时间:2020-01-03 04:41:57

标签: gcc cross-compiling meson-build

我正在为树莓派pi4编译mesa3d。但是运行介子构建时遇到一些错误。

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: f41392cec8f12086b93952027a77c114
COMPILER_PATH=/usr/libexec/gcc/aarch64-linux-gnu/9/:/usr/libexec/gcc/aarch64-linux-gnu/9/:/usr/libexec/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/9/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/
LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/9/
COLLECT_GCC_OPTIONS='-o' '/mesa/build/meson-private/sanitycheckc_cross.exe' '-L/usr/lib' '-pipe' '-D' '_FILE_OFFSET_BITS=64' '-v' '-mlittle-endian' '-mabi=lp64' /usr/libexec/gcc/aarch64-linux-gnu/9/collect2 -plugin /usr/libexec/gcc/aarch64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/aarch64-linux-gnu/9/lto-wrapper-plugin-opt=-fresolution=/tmp/ccvgsZVl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc --sysroot=/usr/aarch64-linux-gnu/sys-root --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux -o /mesa/build/meson-private/sanitycheckc_cross.exe crt1.o crti.o /usr/lib/gcc/aarch64-linux-gnu/9/crtbegin.o -L/usr/lib -L/usr/lib/gcc/aarch64-linux-gnu/9 /tmp/ccybbKgk.o -lgcc -lc -lgcc /usr/lib/gcc/aarch6
4-linux-gnu/9/crtend.o crtn.o
/usr/bin/aarch64-linux-gnu-ld: cannot find crt1.o: No such file or directory
/usr/bin/aarch64-linux-gnu-ld: cannot find crti.o: No such file or directory
/usr/bin/aarch64-linux-gnu-ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/bin/aarch64-linux-gnu-ld: cannot find -lc
/usr/bin/aarch64-linux-gnu-ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status

我已经安装了glibc-devel.i686,其中包括crt1.o crti.o和crtn.o。我可以在/ usr / lib中找到它们。

我尝试设置LIBRARY_PATH并使用-L / usr / lib,但这似乎不起作用。

我的交叉配置是:

[binaries]
c = '/usr/bin/aarch64-linux-gnu-gcc'
cpp = '/usr/bin/aarch64-linux-gnu-g++'
ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'
strip = '/usr/bin/aarch64-linux-gnu-strip'
pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'
exe_wrapper = '/usr/bin/qemu-aarch64-static'
[properties]
c_args=['-L/usr/lib']
c++_args=['-L/usr/lib']
c_link_args = ['-L/usr/lib','--verbose' ]
c++_link_args = ['-L/usr/lib','--verbose']

[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

如何解决这个问题?请有人帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

Raspberry Pi4基于ARM Cortex-A72,因此您需要适当的交叉工具并指定正确的 cpu ,因此这是最低要求:

fetch('http://localhost:3003/users', {
        method: 'POST',
        body: JSON.stringify({ name, password }),
        headers: {
          'Content-Type': 'application/json'
        }
      })
        .then(res => {
          if (res.ok) {
            return res.json();
          }
          throw new Error('Error');
        })
        .then(user => {
          setUser([...users, user]);
          console.log(user.id);
          setLoggedUserID(user.id);
        })
        .then(setLoggedUserID(13)) // Check added user's ID
        .then(errorUserChange(false)); // Change state and go to /loggedin page

查看this了解详情