刚刚编译过的linux内核,去windows转了一圈改进了小块地方,再上ubuntu就不能再编译了
纠结了很久,工程也一次一次重建了,还是不ok。悲催阿...
仔细查看出错原因,+BD,终于ok了,下面是出错原因和解决办法:
问题:
make[3]: *** No
rule to make target 'net/ipv4/netfilter/ipt_ecn.c', needed by
'net/ipv4/netfilter/ipt_ecn.o'
make[2]: *** [net/ipv4/netfilter] Error
2
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2
解决:之前以为是权限问题,一再给根目录777权限,还是出错。
后经多方搜索发现是由于windows与linux实现机制原因
在windows下,文件不分大小写,结果linux下名称相同,但有大小写区别的文件,在windows成一个文件,其他被覆盖。悲剧阿....
针对上面错误,仔细查证发现,果然ipt_ecn.c被同路径下ipt_ECN.c覆盖。
建议:如果要在windows下改源码,编译时尽量只去覆盖已经修改的源码,linux源码下有很多会被windows认为是同名文件的文件。切勿为了逃避单文件覆盖的繁琐,而全部贴过来再编译,这样子只会更麻烦。
感悟:以前觉得windows真好用,自从它莫名其妙覆盖了同名(大小写敏感)文件后,
只想说句:windows真坑人
阅读(18386) | 评论(0) | 转发(0) |