【问题标题】:Netbeans Remote C++ Development "No rule to make target" ErrorNetbeans 远程 C++ 开发“没有制定目标的规则”错误
【发布时间】:2011-12-05 11:16:27
【问题描述】:

在 Netbeans 中创建简单的远程 C++ 开发应用程序时,我收到以下错误:

gmake[2]: Entering directory '/path/to/project'
gmake[2]: *** No rule to make target '/path/to/project/cpp/file'
gmake[2]: Leaving directory '/path/to/project'

BUILD FAILED (exit value 2, total time: 1s)

要重现此错误,我只需创建一个新的 C/C++ 项目,选择我已经配置的远程主机。当我添加带有相应 .h 文件的 .ccp 文件时,出现此错误。我什至不必使用或包含这些文件。似乎 Netbeans 可能无法正确构建 Makefile 来表示将这些文件添加到项目中?

【问题讨论】:

  • 当符号链接损坏时,我会收到该错误消息。
  • 目录中的文件名被巧妙地改变了;包括新文件名,但旧文件名仍在名册中,即使文件不再存在。从名册中删除旧文件名。

标签: c++ netbeans makefile


【解决方案1】:

问题是,我为我的项目使用了绝对路径。经验教训,在使用 Netbeans 开发远程项目时,除非两台机器上的项目位置完全匹配,否则不能使用绝对路径。

要将 Netbeans 配置为使用相对路径,请单击菜单栏中的“工具”选项并选择“选项”。单击顶部的“C/C++”按钮,然后转到“项目选项”选项卡。第二个选项,“文件路径模式:”需要设置为“始终相对”。这将允许 Makefile 正确查找和编译文件。

【讨论】:

  • 嗨,我做了同样的事情,但我仍然看到同样的错误:gmake[2]: *** No rule to make target bla/bla/bla/XXX.cpp needed by build/Debug/GNU-Linux-x86/_ext/501894549/XXX.o 我检查并找不到指定的目录。可能是什么问题?
【解决方案2】:

好吧,考虑到输出,您必须在 makefile(或 Netbeans 所做的)中添加了一个文件,而该文件不存在。因此它认为它是一个未声明的目标,因为目标,实际目标所依赖的目标,以及目标编译所依赖的.cpp文件在同一行。我建议您确保 makefile 位于正确的位置,因此如果您遵循确切的路径,您应该最终找到文件应该在的位置,或者您配置 vpath 变量以考虑文件应该在的目录。否则 this 可能会提供进一步的帮助,因为错误消息听起来很相似。

【讨论】:

  • 我对此进行了更深入的研究。由于该项目是一个远程项目,Netbeans 没有在 Makefile 中为新创建的 .cpp 文件放置正确的路径。例如,该文件位于我的 Windows 机器(开发机器)上的 C:\dev\CPP\Project\test.cpp... 但是 Makefile(要在远程 linux 机器上构建)有 /C/dev/ CPP/Project/test.cpp,这不是文件的完整路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多