arch/x86/Makefile:184: *** Compiler lacks asm-goto support.. Stop.
时间: 2023-07-18 17:43:19 浏览: 514
这个错误提示表明您的编译器不支持 `asm-goto` 扩展。`asm-goto` 是 Linux 内核中用于实现快速路径的一种机制,需要编译器支持。
如果您使用的是 GCC 编译器,那么您需要确保使用的是 GCC 4.5 或更高版本,并启用 `-fno-delete-null-pointer-checks` 选项。
如果您使用的是 Clang 编译器,那么您需要确保使用的是 Clang 3.9 或更高版本,并启用 `-fexperimental-new-pass-manager` 选项。
您可以在 Makefile 中添加以下选项来启用 `asm-goto` 扩展:
```
KBUILD_CFLAGS += -fno-delete-null-pointer-checks -fno-PIE -no-pie
```
如果您仍然遇到问题,可以尝试更新您的编译器版本,或者使用支持 `asm-goto` 扩展的编译器。
相关问题
arch/x86/makefile:184: *** compiler lacks asm-goto support.。 停止。
这个错误信息表明在编译arch/x86目录下的makefile文件时发现编译器缺少asm-goto的支持,因此无法继续进行编译。asm-goto是一种特殊的汇编语法,用于在C代码中使用汇编跳转指令。缺少asm-goto的支持意味着编译器无法识别并处理这样的语法,因此编译过程被中止。
解决这个问题的方法是通过升级或更换编译器版本来获得对asm-goto的支持。可以尝试使用更新的GNU编译器套件(GCC)版本,因为新版本的GCC通常会包含对新的语言特性和扩展的支持。另外,还可以检查编译器的配置选项是否正确设置,确保相关的功能被启用。
如果更新或更换编译器版本不可行,可能需要修改代码,以便避免使用asm-goto语法。可以尝试使用其他逻辑结构或语句来替代这些汇编跳转指令,以实现相同的功能。
总之,修复这个错误需要解决编译器缺少asm-goto支持的问题,方法是升级或更换编译器版本,或者修改代码以避免使用asm-goto语法。
*** No rule to make target `arch//Makefile'. Stop. make: *** [sub-make] Error 2
在引用中,*** No rule to make target `arch//Makefile'. Stop. 的意思是在执行make命令时,找不到指定的目标文件arch/Makefile。这可能是因为在项目中缺少了该文件或者Makefile中的规则有误。由于缺少了指定的目标文件,make命令无法继续执行,从而出现了错误信息。
在引用中,recipe for target 'scripts/mod/empty.o' failed 的意思是在执行make命令时,生成scripts/mod/empty.o文件的规则出现了错误。可能是Makefile.build文件中对应的规则有误,导致生成目标文件失败。
在引用中,recipe for target 'scripts/mod' failed 的意思是在执行make命令时,生成scripts/mod目录的规则出现了错误。可能是Makefile.build文件中对应的规则有误,导致生成目录失败。
总结来说,出现这些错误信息是因为在执行make命令时,无法找到或生成指定的目标文件或目录。这可能是由于缺少文件、规则有误或其他原因导致的。