我的Ubuntu上有不同的linux源码,使用其他版本的linux源码进行编译,当使用makefile编译时,显示./include/uapi/linux/types.h:5:23: fatal error: asm/types.h: 没有那个文件或目录 这个错误。
网上一般的解决方式是:导入相关工具链,即导入environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi这个工具链。
注意,不同的Ubuntu和不同的开发环境,这个工具链的路径是不同的。你要找到你所使用的Ubuntu中 environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi 的位置。
使用find命令查找此文件位置。 使用方式:find 路径 -name "文件名"
一般environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi这个文件都是放在/opt 这个目录下,所以可以使用下面的命令来查找
find /opt/ -name environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
当然你也可以使用 find / -name environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi 这个命令在根目录下寻找,这样时间会比较长。
如上图所示,红框内的就是我的系统配置文件的路径。
找到了路径,就可以使用source命令来导入工具链了。source+文件(绝对路径),我的命令如下:
source /opt/st/stm32mp1/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
上面命令中加红加粗部分是我的路径,如果你的路径不一样,请按照实际路径进行修改。
配置完成后,再重新makefile(make),就不会报错了。
ps:最好在同一个终端下导入工具链和make编译文件。希望此篇文章对您有帮助。