gpt4 book ai didi

c - AARCH64 gcc#include 失败

转载 作者:行者123 更新时间:2023-11-30 16:36:39 25 4
gpt4 key购买 nike

我正在尝试使用我的源文件之一中的 aarch64 交叉编译器从 x86 计算机编译树莓派 3 的一些内核代码,我需要 stdint.h,但是当我尝试编译时它失败了

>make
rm kernel8.elf *.o >/dev/null 2>/dev/null || true
rm -rf *.o *.img *.elf
aarch64-linux-gnu-gcc -Wall -c start.s -o start.o
aarch64-linux-gnu-gcc -Wall -c delays.c -o delays.o
In file included from gpio.h:4:0,
from delays.c:26:
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdint.h:9:16: fatal error: stdint.h: No such file or directory
# include_next <stdint.h>
^~~~~~~~~~
compilation terminated.
make: *** [Makefile:15: delays.o] Error 1

我正在运行 Fedors 26 并使用过

sudo dnf install *aarch64*

所以我拥有或应该拥有所有合适的软件包。

最佳答案

我建议使用最新的Linaro toolchain对于 x86:我过去在使用主流 Debian/Ubuntu 提供的 ARM 交叉编译器时遇到过一些问题。

使用以下 stdint.c 示例:

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
printf("The size of an uint32_t is %d.\n", sizeof(uint32_t));
return EXIT_SUCCESS;
}


mkdir -p /opt/linaro
wget https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-i686_aarch64-linux-gnu.tar.xz
tar Jxvf gcc-linaro-7.2.1-2017.11-i686_aarch64-linux-gnu.tar.xz -C /opt/linaro
/opt/linaro/gcc-linaro-7.2.1-2017.11-i686_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -o stdint stdint.c


编译应该成功,并且您应该获得一个有效的 AARCH64 可执行文件:

readelf -h stdint
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: AArch64
Version: 0x1
Entry point address: 0x4003f0
Start of program headers: 64 (bytes into file)
Start of section headers: 4872008 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 6
Size of section headers: 64 (bytes)
Number of section headers: 37
Section header string table index: 36


如果您有 x86_64 开发 PC,请使用 x86_64 version Linaro 工具链当然更好。

关于c - AARCH64 gcc#include <stdint.h> 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48334194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com