**没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
来源:互联网 发布:法律英语翻译软件 编辑:程序博客网 时间:2024/05/22 11:54
该博文参考:snowboy.blog.chinaunix.net,感谢这位博主讲解。
一、现象
我将之前Redhat9.0编译好的uboot,转到ubuntu12.04环境。在ubuntu环境下对 uboot重新编译提示错误。编译过程如下:
root@hailin-virtual-machine:/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06# make clean
root@hailin-virtual-machine:/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06# make TX2440_config
Configuring for TX2440 board...
root@hailin-virtual-machine:/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06# make -j4
Generating include/autoconf.mk
Generating include/autoconf.mk.dep
for dir in tools examples/standalone examples/api arch/arm/cpu/arm920t /home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06/arch/arm/cpu/arm920t/ ; do \
make -C $dir _depend ; done
make[1]: 正在进入目录 `/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06/tools'
make[1]: 没有什么可以做的为 `_depend'。
make[1]:正在离开目录 `/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06/tools'
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。此处省略部分编译输出
make[1]: 正在进入目录 `/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06/tools'
make[1]:*** 没有规则可以创建“crc32.o”需要的目标“/home/hailin/u-boot-2010.06/lib/crc32.c”。 停止。
make[1]:正在离开目录 `/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06/tools'
make: *** [tools] 错误 2
make: *** 正在等待未完成的任务....
make[1]: 正在进入目录 `/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06/examples/standalone'
make[1]:*** 没有规则可以创建“hello_world.o”需要的目标“/home/hailin/u-boot-2010.06/include/common.h”。 停止。
make[1]:正在离开目录 `/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06/examples/standalone'
make: *** [examples/standalone] 错误 2
make: *** wait: 没有子进程。 停止。
root@hailin-virtual-machine:/home/hailin/桌面/dream/tx2440/uboot/u-boot-2010.06#
为什么之前在redhat环境中,可以成功编译,而到ubuntu环境会出现没有规则呢??
二、解决方法
输入以下命令:
make disclean
make TX2440_config
make -j4
输出结果:
为什么 将make clean 换成 make distclean就成功???
三、原理
make distclean类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile。
从上面的解析可以看出,上面的问题的根源是因为,从redhat拿来uboot代码里面已经有配置文件,是根据原来的编译环境生成的,仅仅通过make clean并不能清楚之前的配置文件,没有清除之前的配置文件就进行编译,编译器本着相信程序员的态度,编译时不会产生新的configure生成的附带文件,而是根据原来的configure生成的文件进行编译,这样就会导致上面的一系列编译错误。make distclean可以将所有的垃圾,之前环境所有的余孽清理干净,这样就不会给编译器偷懒的机会。
综上所述:拿到任意个uboot、kernel源码,都要做一次 make distclean,清除所有生成文件。避免上述的低级错误的出现。
- u-boot中***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- ***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- **没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- ***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- ***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- **没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- ***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- ***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- ***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- 问题之~没有规则可以创建 ...需要的目标....
- 没有规则可以创建kernel/bounds.s需要的目标kernel/bounds.c的基本解决方案
- make: *** 没有规则可以创建“default”需要的目标“build”
- Linux平台下安装Nginx的问题:make: *** 没有规则可以创建“default”需要的目标“build” 问题解决
- 编译内核出现:没有规则可以创建kernel.release需要的目标include/config/auto.conf
- 没有规则可以创建/framework.jar需要的目标framework-res.apk 停止
- mmm错误:没有规则可以创建 需要的目标(No rule to make target)
- make[1]: *** 没有规则可以创建“all”需要的目标“hello_world.srec”。 停止。
- make: *** 没有规则可以创建“obj/local/armeabi//CCConfiguration.o”需要的目标“/Users/wanglei/andon.cpp”。 停止。
- FFMPeg代码分析:AVFormatContext结构体
- js的\u汉字编码转化为java可识别的
- css中font的简写方式
- ANDROID application详解与用法
- 特征向量几何意义
- **没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- 一个手游人眼中的2014:并购转向、淘汰高发、借4G飙高
- 使用Application维护管理Activity列表
- python import
- Ubuntu与Android双系统安装
- ios 类别和扩展
- Oracle Errorcode 17002
- windows 7 无法共享打印机可通过如下方法解决。
- 全局变量初始化顺序