0

我正在修改一个共享库。我将目录的内容复制到一个新的同级目录并在整个库上运行 Make。但是,我收到以下错误:

Make: *** No rule to make target /opt/orchestra/tests/ToolsNew/Makefile’, needed by ‘Makefile’. Stop.

为什么可以制作的目录副本不能制作?

4

2 回答 2

0

有点困惑,您正在寻找 :: 的答案

如何确定哪个 Makefile 以给定文件为目标?或者为什么可以制作的目录副本不能制作?

第一个问题:它似乎是新的品牌副本,但如果您仍有疑问....

检查您触发命令的位置....路径,如果未指定文件名,则默认情况下make会在当前目录中查找描述符 - 这是运行命令的位置...

或者

如果在同一个目录中有两个或多个外观相似的makefile,您不确定使用了哪个,例如:makefile 和Makefile,那么您可以检查.MAKEFILE_LIST——它包含每个由makefile 解析的makefile 的名称make in general ,因此您可以在此处获得名称和查找它们的顺序。

检查方法::
make -p < /dev/null | 三通 MAKE_P.TXT

(注意:-p 选项会列出 make 的所有设置 .... 文件会很长)

这应该可以帮助您找到正在使用的描述符生成文件。

第二问:

从您的编辑看来,真正的问题是:无法粘贴 Makefile,因为它位于我现在无法访问的 VM 上。– RouteMapper 16 小时前

我会检查代码......调用可能就像......

 cd $(proj_dir) &&  $(MAKE) ;

如果您在此处使用较旧的 $(proj_dir) 值,即 /opt/orchestra/tests/Tools ,即使您无法复制较旧的 Makefile 也可以使用它,在运行期间它将使用您拥有的当前环境设置.... ..我认为它应该工作!

希望这可以帮助 !!让我知道您是否需要其他东西?

于 2013-05-18T14:12:23.087 回答
-1

原因可以在输出中找到。注意它是如何抱怨文件的/opt/orchestra/tests/ToolsNew/Makefile?基本上,警告是告诉您文件丢失,并且您没有定义生成新副本的 Make 规则。

您应该验证该文件是否存在,我敢打赌它不存在。

于 2013-05-17T20:37:58.960 回答