Linux 内核编译报错及解决办法记录
Linux内核编译问题记录、分析以及解决办法
·
Linux 内核编译报错及解决办法记录
- Can’t use ‘defined(@array)’ (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
根据错误的提示信息,Maybe you should just omit the defined()(也许你该删除define),然后打开该文件跳转到指定行数,删除define,修改后如下图所示
- include/linux/netfilter_ipv4/ipt_ECN.h:13: fatal error: linux/netfilter/xt_dscp.h: No such file or directory
根据错误信息,提示找不到该文件,在当前目录下搜索下该文件,不区分大小写grep -rn xt_dscp.h
,结果如下图所示,可见在该文件夹内存在同名的文件,只是大小写不一样,而linux是大小写敏感的,因此提示找不到该文件,先简单的处理下,在该文件同一目录下新建一个同名小写的文件cp include/linux/netfilter/xt_DSCP.h include/linux/netfilter/xt_dscp.h
按照上述方法修改完成后,继续执行make zImage进行编译,不出所料继续报错,如下图所示
这是由于该文件夹是在Windows下解压然后直接拷贝到ubuntu下,由于Windows是大小写不敏感的,其会导致部分文件丢失和被更改,重新将内核源码压缩式拷贝到ubuntu,然后进行解压,解压完成后,执行grep -rn xt_dscp.h
对上述分析进行验证,结果如下所示,在内核文件中确实存在同名但是大小写不一样的xt_DSCP.h xt_dscp.h两个文件
然后重新执行make zImage
,顺利完成镜像编译,如下图所示
3.fatal error: gmp.h: 没有那个文件或目录
解决办法:sudo apt-get install libgmp-dev
注:GMP(The GNU Multiple Precision Arithmetic Library)又叫GNU多精度算术库,是一个提供了很多操作高精度的大整数,浮点数的运算的算术库,几乎没有什么精度方面的限制,功能丰富。我刚接触到这个东西的时候是在学习PHP的过程中。GMP的主要目标应用领域是密码学的应用和研究、 互联网安全应用、 代数系统、 计算代数研究等。
4.fatal error: mpc.h: 没有那个文件或目录
解决方法:sudo apt-get install libmpc-dev
注:MPC(Library for the arithmetic of complex numbers with arbitrarily high precision)任意高精度复数算法库
更多推荐
已为社区贡献1条内容
所有评论(0)