致命错误:gnu / stubs-soft.h:没有这样的文件或目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了致命错误:gnu / stubs-soft.h:没有这样的文件或目录相关的知识,希望对你有一定的参考价值。

在64位Ubuntu 16.04上交叉编译helloworld程序时,我遇到了以下错误,32位Cortex A9平台。

$ make
/usr/local/comp/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mtune=cortex-a9 --sysroot=/usr/local/comp/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi -Iinclude -Wall -O3 -c -o main.o main.c
In file included from /usr/local/comp/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/features.h:389:0,
             from /usr/local/comp/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/stdio.h:27,
             from main.c:5:
/usr/local/comp/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory
# include <gnu/stubs-soft.h>
                         ^
compilation terminated.
makefile:45: recipe for target 'main.o' failed
make: *** [main.o] Error 1

然后我检查stubs.h文件的内容:

$ cat /usr/local/comp/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/gnu/stubs.h 
/* This file is automatically generated.
   This file selects the right generated file of `__stub_FUNCTION' macros
   based on the architecture being compiled for.  */


#if !defined __ARM_PCS_VFP
# include <gnu/stubs-soft.h>
#endif
#if defined __ARM_PCS_VFP
# include <gnu/stubs-hard.h>
#endif

我应该在makefile中定义_ARM_PCS_VFP吗?

答案

从交叉编译器的名称“cortexa9hf-vfp-neon-poky-linux-gnueabi”开始,它以Cortex-A9为目标,采用VFP架构并启用了霓虹灯。添加-mfloat-abi=hard开关应该可以解决问题。

从GCC手册:

-mfloat-ABI =名:

指定要使用的浮点ABI。允许的值为:'soft','softfp'和'hard'。

指定'soft'会导致GCC生成包含用于浮点运算的库调用的输出。 'softfp'允许使用硬件浮点指令生成代码,但仍使用soft-float调用约定。 'hard'允许生成浮点指令并使用FPU特定的调用约定。

默认值取决于特定的目标配置。请注意,硬浮点和软浮点ABI不是链接兼容的;您必须使用相同的ABI编译整个程序,并链接到一组兼容的库。

以上是关于致命错误:gnu / stubs-soft.h:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:Python.h:没有这样的文件或目录错误:命令“x86_64-linux-gnu-gcc”失败,退出状态为 1

解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”

致命错误:在 (1) 处打开的文件“hdf5.mod”不是 GNU Fortran 模块文件

致命错误:Python.h:没有这样的文件或目录 - 没有用 python-devel 解决 [重复]

打开AutoCAD 文件就会弹出致命错误

steam上游戏打不开,说C盘上有致命错误?