Eclipse C++ 问题:没有二进制文件(但没有编译器错误),没有类(但在类层次结构中没有条目)

Posted

技术标签:

【中文标题】Eclipse C++ 问题:没有二进制文件(但没有编译器错误),没有类(但在类层次结构中没有条目)【英文标题】:Eclipse C++ issue: No binary (but no compiler error), no classes (but no entry in the class hierarchy) 【发布时间】:2012-02-19 01:58:20 【问题描述】:

这个问题可能很容易解决,但我不知道该怎么做。

无论如何,我在 Ubuntu 11.04 中使用的是 Eclipse 3.5.2。我正在用 C++(不是 Java)编写游戏,并且正在为它编写几个类。美好的。我经常构建以检查错误。很好。

但我的第一个问题是,当我点击构建(调试和发布)时,即使出现编译对话框窗口,我也没有得到二进制文件,也没有得到任何错误。这就是我得到的;

**** Build of configuration Debug for project Different-Game ****

make all 
make: Nothing to be done for `all'.

就是这样。这可能只是我在某个地方搞砸的设置,但我不知道我在这里做什么!

第二个问题需要解释一下。我用 UML 编写了一个类图,为自己提供一个可靠的参考。我将其导出为 .cpp 文件以查看其工作原理,但我忘记将其从源文件夹中删除。这意味着我的项目认为这些类是项目的一部分。即使在删除 .cpp 之后,它仍然认为这些类在其中。它们不会显示在左侧的层次结构中,但我无法使用它们持有的名称创建类(并且应该放弃)。

有人有什么建议吗?

【问题讨论】:

您是否手动创建自己的 make 文件?如果是这样,请确保您包含“make all”功能,因为 Eclipse 似乎默认使用该功能。 不。我正在使用 Eclipse 的自动生成的 makefile。我没有直接碰它。 好吧,答案在于包含一个 make 文件。这是一种痛苦(对于像我这样习惯于 Java/C# 的人)。阅读此网页,因为您需要复制和粘贴来创建自己的 makefile。 help.eclipse.org/galileo/index.jsp?topic=/… 但问题是,我以前也有过。我已经成功地加载了一个类并打开了一个渲染窗口(使用几个文件,我可能会添加)。所以我不明白如何从头开始制作一个。 啊,对不起。我错过了。我在使用 Eclipse 时遇到了麻烦,并且使文件变得很好。我最终使用带有 Cygwin 的 Bash shell 来实际运行和编译我的代码,并使用 Eclipse 来编写它。不理想,我知道。有时您可以通过选择它一次“制作”一件事,右键单击构建。如果您没有选择任何内容,它将尝试“make all”命令。 【参考方案1】:

看起来 CDT 还没有找到要构建的东西。如果它只是找到一些的东西,它会引发诸如undefined reference to 'main'

之类的错误

可能有多种原因:

可以从当前构建中省略文件。右键单击您的源文件,资源配置-> 从构建中排除。确保没有勾选任何内容。 源文件位于 Eclipse 不检查源的子文件夹中。右键单击您的文件夹、属性、C/C++ 构建,确保未勾选“从构建中排除资源”。

您可以通过查看构建文件夹(CDT 放置生成的 makefile 的位置)来验证正在生成哪些源文件。查找标题为 subdir.mk 的文件。其中每一个都应提及要在该目录中编译的源文件。

例如如果你有~/workspace/myProject/src/main.c,那么~/workspace/myProject/Debug/src/subdir.mk 也应该在那里,它应该包含一行../src/main.c

【讨论】:

以上是关于Eclipse C++ 问题:没有二进制文件(但没有编译器错误),没有类(但在类层次结构中没有条目)的主要内容,如果未能解决你的问题,请参考以下文章

OS X Eclipse C++ 启动失败 - 找不到二进制文件

C++ 类文件未在 Linux OS 上运行的 Eclipse Mars 中构建二进制文件

启动失败没有二进制文件 - gcc 与 eclipse

ue4创建c++类时报错是啥原因?

eclipse c++ 报错 求大神看看

创建带有扩展名的共享库