启动失败。找不到二进制文件。在Eclipse Helios上使用CDT。

75
我正在Ubuntu 10.04上使用Eclipse Helios,并尝试安装CDT插件。我从这里下载它。
然后我进入”安装新软件”,并选择zip文件(我不解压,只选择zip文件)。一切正常,它安装成功,所有可选功能都展示出来了等等。
接着我创建了一个新的HelloWorld项目。当我尝试运行它时,出现了错误并显示:
启动失败,二进制文件未找到。
有谁能告诉我如何修复它吗?
谢谢。

2
在MacOSX上,我遇到了同样的问题:在构建项目后,它无法运行,并显示消息:“启动失败。未找到二进制文件。” 我通过转到“运行>运行配置...> C / C ++应用程序> {可执行文件路径}”来解决它。 - Pantelis Sopasakis
@PantelisSopasakis:我也遇到了这个问题,并且也是用这种方法解决的。但即使路径仍然显示在配置中,不知何故我总是不得不去路径,然后点击运行,而不是“作为本地C/C++应用程序运行”。你能帮忙吗? - user2751691
@user2751691 对不起,我想不到其他解决方法(除非我目前没有使用MacOSX)。如果你找到了解决方法,请告诉我... - Pantelis Sopasakis
2
@PantelisSopasakis:我通过将二进制解析器从elf解析器更改为Mach O 64解析器来解决了这个问题。然后它神奇地工作了。谢谢。 - user2751691
二进制解析器ELF应该在Ubuntu / Linux中。在Mac上,您的构建二进制解析器应该是Mach-O格式。请参见https://www.eclipse.org/forums/index.php/t/268200/ 我已添加了一个答案。 - lib
13个回答

133

在运行可执行文件之前,您必须先构建它。因此,如果您没有“构建”文件,则无法链接和加载该对象文件,因此它不具备执行所需的二进制数字。

因此,基本上右键单击项目-> 构建项目-> 作为本地C/C++应用程序运行就可以了。


1
我已经构建了这个项目,但是即使在 #include <stdio.h> 的情况下也出现了未解决的包含错误。我该怎么办? - Ege
尽管我按照这个步骤操作,但它对我没有起作用的原因是,我没有保存文件本身。 - atp9
谢谢@varunthacker,经过长时间的挣扎,你的答案解决了我的问题,简单而高效! - Java.beginner
我认为这不是更好的答案。问题可能是因为它没有被构建,文件没有保存,选择了错误的解析器。这只解决了一个问题。 - Mark Walsh

36

首先,你需要确保已经构建了该项目。您可以使用工具栏中的锤子图标来构建项目。您可以选择构建调试版或发布版。如果您无法构建项目,则问题在于您没有安装编译器或IDE无法找到编译器。

若想查看Mac上是否安装了编译器,您可以从命令行运行以下命令:

g++ --version
如果您已经安装了它(在安装XCode工具时会自动安装),您可以运行以下命令查看其位置:

如果你已经安装了它(在安装XCode工具时会一并安装),你可以通过运行以下命令来查看其位置:

which g++

如果您已能构建该项目,但仍然收到“二进制文件未找到”的消息,则问题可能是项目未创建默认的启动配置。在这种情况下,请执行以下操作:

Right click project > Run As > Run Configurations... > 

然后在"C/C++ Application"部分创建一个新的配置 > 输入可执行文件的完整路径(在构建步骤中创建的文件将存在于Debug或Release文件夹中)。 您的启动配置应如下所示:

输入图像说明


我该如何强制Eclipse默认创建这个“运行配置”?在Windows中,我没有这个问题。 - Afshin Oroojlooy

16

现在请前往 Run->Run Configuration->

在C/C++ Application下,您将看到可执行文件的名称+调试(如果没有,请单击C/C++ Application几次)。 选择名称(在本例中为projectTitle + Debug)。

在此之下,在主选项卡->C/C++应用程序->搜索您的项目中,在二进制文件中选择由您的项目命名的二进制文件....


@Unmesh:你好,在我的项目中,每次想要运行项目时都需要手动浏览并设置位置。有没有办法让它记住位置呢?http://stackoverflow.com/questions/28420749/eclipse-cdt-cannot-find-built-exe-file-after-building-have-to-click-run-configu 谢谢。 - user2751691
我的问题在于即使构建完成后,Eclipse 仍然无法找到二进制文件。结果发现运行配置丢失了。谢谢! - Tim
我该如何强制Eclipse默认创建这些运行配置?在Windows上使用Eclipse时,我没有这个问题。 - Afshin Oroojlooy

4

我解决了二进制路径问题,但我的C项目仍无法运行...直到我看了你的答案并意识到自从我解决了二进制路径问题后我还没有重新构建项目!谢谢。有时候我只需要被指出显而易见的问题。 - James Dunn

4

如果您在构建项目后仍然出现错误,请尝试执行以下操作:

  • 使用鼠标左键单击“工程资源管理器”中的二进制文件
  • 点击绿色的“播放”按钮(运行调试)

太棒了。它还记住了选择,因此从菜单中运行将随后起作用。 - kometen

4
我有一个问题困扰了我很久,一直找不到答案。我添加了所有路径,构建了所有内容,并基本上按照这里的每个人建议的方法进行操作,但没有运气。最后,我阅读了评论,发现有一些编译错误在生成二进制和exe文件之前中止了过程。
底线:进行代码审查,确保您的代码中没有错误,因为有时候eclipse并不总是能够捕捉到所有错误。
如果您可以运行基本的“Hello World”,但无法运行您的代码,则显然您的代码存在问题。我是通过艰难的方式学会的。

2
我遇到了同样的问题,并在另一个问题的答案中找到了解决方法: https://dev59.com/eXI-5IYBdhLWcg3wPF12#1951132 基本上,安装CDT并不会安装编译器,而Eclipse的错误消息也没有明确说明这一点。

2
我遇到了同样的问题。我在Ubuntu上安装了Eclipse Indigo和Eclipse Luna。我尝试了许多解决方案,但都没有成功。以下是您可以尝试的方法:)
按顺序尝试以下步骤:
  1. 先进行“Build All”,然后再编译:)
  2. 安装G++编译器
  3. Windows->Preferences->NEW CDT PRoject->Makefile->Binary Parsers->选择Cywin或Window PE(根据您的操作系统):)
  4. 将工具链更改为cywin gcc
  5. Project->Properties->Environment->Release Active
在完成1、2、3和4之后,我尝试更改路径和其他东西,但仍然不起作用。最后,我注意到它提到未配置Debug Active。因此,当我将其更改为Release Active时,它就起作用了。请注意,不需要更改环境和路径。

1
似乎在项目菜单下有“自动构建”功能可以解决这个问题。对于Java来说确实如此。

1

我在安装用于C/C++应用程序的Eclipse时遇到了同样的问题。我下载了Mingw GCC,将其bin文件夹放入您的路径中,在Eclipse中创建新的C++项目时使用它作为工具链并进行构建,这解决了我的问题。 参考此视频


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接