我遇到了make文件的问题,当我在目录部分运行make -p时,我得到了:
adminSrc (device 2049, inode 15991947): 5 files, 1 impossibilities.
这是我遇到问题的目录所以我怀疑这是原因。
我已经搜索过这个,在GNU make docs中没有引用,我看了一些stat docs,没有快乐。谷歌在usenet线程中提出了问题,但没有回复。
那么,不可能性意味着什么?我怀疑文件系统损坏,是真的吗?它会破坏涉及该目录的规则吗?
以下是有问题的makefile片段
canvasserDest/%.js: canvasserSrc/%.js
jsx canvasserSrc canvasserDest
adminDest/%.js: adminSrc/%.js
jsx adminSrc adminDest
和
scripts/enterApp.js: admin/enter.js adminDest/enterJXS.js
browserify admin/enter.js > scripts/enterApp.js
在bash中
jrootham@Doonesbury:~/dev/campaign$ ls adminSrc/
assignJSX.js enterJSX.js recruitJSX.js
jrootham@Doonesbury:~/dev/campaign$ make
make: *** No rule to make target `adminDest/enterJXS.js', needed by `scripts/enterApp.js'. Stop.
canvasserDest规则工作正常,adminDest规则没有。我做错了什么?
我一直在寻找错别字和坏看不见的字符,但是看看带有od的makefile并没有显示任何内容。
答案 0 :(得分:2)
make make 3.81(也是3.82和4.0)中的快速潜水似乎表明这意味着该目录中的文件被尝试作为中间文件进行搜索,但未能找到该文件。
来自dir.c
:
/* Mark FILENAME as `impossible' for `file_impossible_p'.
This means an attempt has been made to search for FILENAME
as an intermediate file, and it has failed. */
如果您查找说“拒绝不可能......”的行,则可能与该计数中的文件有关。
并回答引起不可能文件问题的根本问题。
在prereq中的adminDest / enterJXS.js中有JXS而不是JSX。