如何确定哪个Makefile定位到给定文件?

时间:2013-05-17 20:35:24

标签: c++ makefile

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

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

为什么一个可以做得很好的目录副本不能生成?

2 个答案:

答案 0 :(得分:0)

有点困惑,你正在寻找::

的答案

如何确定哪个Makefile定位到给定文件? 要么 为什么一个可以做得很好的目录副本不能生成?

第一个Q:它似乎是制作的新副本,但如果你仍然有疑问......

检查你发出命令的位置....路径,如果没有指定文件名,那么默认情况下make会查找a   当前目录中的描述符 - 运行命令的地方......

OR

如果在同一目录中有两个或多个相似的外观makefile,则不确定使用了哪一个 例如:makefile和Makefile然后你可以检查.MAKEFILE_LIST - 它包含make一般解析的每个makefile的名称,所以你得到它们的名称和查找顺序。

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

(注意:-p选项会列出make的每个设置....文件会很长但是很长)

这应该可以帮助您找到正在使用的描述符makefile。

第二个问题:

从你编辑它似乎真正的问题是:不能粘贴Makefile,因为它位于我现在无法访问的VM上。 - RouteMapper 16小时前

我会检查代码......打电话可能就像......

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

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

希望这有帮助!! 如果你还需要其他东西,请告诉我?

答案 1 :(得分:-1)

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

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