No rule to make it a ruletarget all'初学者求教

51005人阅读
Ubuntu Linux(66)
有个已有的Makefile,执行过程中出错:
CLi@PC-CLI-1 ~/develop/docbook/books/python_topic_str_encoding/src
$ make html
=============================== cleaning html ==============================
rm -rf ../output/html/single/*
make: *** No rule to make target ` ‘, needed by `../output/html/single/python_topic_str_encoding.html’.& Stop.
【解决过程】
1.换到别的,和当前文件夹等价的路径中去执行,结果却是正常的:
CLi@PC-CLI-1 ~/develop/docbook/books/python_topic_str_encoding/src
$ cd ../../python_topic_web_scrape/src
CLi@PC-CLI-1 ~/develop/docbook/books/python_topic_web_scrape/src
$ make html
=============================== cleaning html ==============================
rm -rf ../output/html/single/*
=============================== generating html ==============================
export XML_CATALOG_FILES=&/home/develop/docbook/config_root/catalog/catalog.xml& && \
export XML_DEBUG_CATALOG=1 && \
2.后来折腾半天,最后终于发现,原来是由于,当前Makefile中的内容是:
PROJECT_NAME = python_topic_str_encoding
SUB_SRC_FILES = \
&&&&python_topic_str_encoding.xml \
&&&&preface.xml \
&&&&ch01_2x_vs_3x.xml \
&&&&ch02_common_encoding_error.xml \
&&&&ch03_other_common_case.xml \
&&&&reference.xml \&&&
DOCBOOK_MAKEFILE_ROOT = ../../../config
include $(DOCBOOK_MAKEFILE_ROOT)/docbook.mk
其中,注意到,所依赖的
reference.xml \
后面还有几个空格的,截图才能看出来:
导致了此错误。
把最后的,多余的空格去掉:
就可以消除此问题了。
Makefile在编译执行过程中,对于所依赖的条件,此处即一堆xml文件,最后一个是reference.xml,结果由于最后reference.xml后面,有多余的4个空格,导致Makefile将该处的4个空格,视为一个文件了,所以,必然找不到该“文件”,所以才报错的。
所以,如果Makefile出现:
make: *** No rule to make target ` ‘, needed by xxx. Stop.
的错误,那么基本上都是属于找不到所依赖的文件所导致的,所以应该去:
检测确保,所依赖的文件,是否真实存在。
很可能,很常见的一个现象就是,此处的,误写了多余的空格,导致被视为依赖文件,导致找不到,导致报此错误。
解决办法就很简单,去掉多余的空格即可
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1245270次
积分:12679
积分:12679
排名:第801名
原创:66篇
转载:534篇
评论:133条
(1)(1)(1)(6)(1)(4)(2)(2)(2)(7)(22)(19)(7)(7)(18)(17)(25)(20)(35)(24)(24)(8)(4)(8)(21)(14)(6)(5)(8)(12)(6)(13)(15)(28)(9)(21)(31)(16)(6)(14)(4)(5)(3)(5)(1)(1)(6)(6)(4)(5)(5)(11)(31)(21)(5)95303人阅读
Vxworks/Tornado(1)
在用Tornado编译的时候,遇到编译器报如下错误:&
make: *** No rule to make target `e:/Tornado2.2_Project/FTTB/utils/h/nos/nos_cli.h', neede d by `onu07_snmp_cli.o'.& Stop.
错误原因:makefile里面的文件依赖关系有问题,导致头文件找不到。
解决办法:打开编译相关模块的makefile文件,找到.o文件的依赖关系,找到.h文件的路径,查看是否出错并改正。
原因分析:这种情况有时候是因为工程所在的目录改变,例如原来在C盘,现在移到了D盘,而makefile里面的.h文件路径没有改变
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:192696次
积分:1387
积分:1387
排名:千里之外
原创:30篇
评论:16条
(2)(1)(2)(1)(1)(2)(1)(3)(1)(1)(2)(2)(2)(1)(3)(2)(9)在线等求助No rule to make target_qt吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:30,154贴子:
在线等求助No rule to make target收藏
:-1: 错误:No rule to make target `../../../Qt/4.8.4/mkspecs/win32-g++/qmake.conf', needed by `makefile'.
报考二级消防师要求,学尔森13年考培经验为您解答,更有百度信贷分期付学费.
把编译时生成的目录删了再试试编译生成的目录默认为源代码目录的上一级目录的"build-"+项目名称+"..."的目录
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 make a rule 的文章

 

随机推荐