gcc 不会编译缺少 sys/cdefs.h

gcc won't compile missing sys/cdefs.h

尝试在 armhf 嵌入式设备上编译 gcc,但在尝试使用 xgcc 编译 libgcc 时停止,说找不到 sys/cdefs.h

libc6 和 libc6-dev 已经安装,cdefs.h 可以在 /usr/arm-linux-gnueabihf/sys/

找到

如何将 /usr/arm-linux-gnueabihf 添加到 xgcc 包含路径?

添加参数:-I/usr/arm-linux-gnueabihf 到编译语句

需要将 --with-float=hard 添加到配置行。

这是因为MULTIARCH_DIRNAME是根据with-float配置选项定义的

MULTIARCH_DIRNAME = $(call if_multiarch,arm$(ARM_EB)-linux-gnueabi$(if $(filter hard,$(with_float)),hf))

gcc

的好心人指出