【问题标题】:Eclipse CDT error: Unable to compileEclipse CDT 错误:无法编译
【发布时间】:2011-08-16 09:19:22
【问题描述】:

我尝试运行一个简单的 Hello world 程序。当我尝试构建它时出现此错误。这是什么意思,我该如何解决?我使用的是 Windows 7,并且在 %PATH% 中有 MinGW 和 MSys。

**** Build of configuration Debug for project learn ****

**** Internal Builder is used for build               ****
g++ -IC:\MinGW\lib\gcc\mingw32\4.5.2\include\c++ -IC:\MinGW\libexec\gcc\mingw32\4.5.2 -O0 -g3 -Wall -c -fmessage-length=0 -osrc\learn.o ..\src\learn.cpp
g++: CreateProcess: No such file or directory
Build error occurred, build is stopped
Time consumed: 78  ms.  

代码:

#include <iostream>

int main()
{
    std::cout << "Hello, world!" << std::endl;
    return 0;
}

我的 %PATH% 是:

C:\Users\Hari>echo %PATH%
C:\Program Files (x86)\MiKTeX 2.8\miktex\bin;C:\sml\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Program Files (x86)\QuickTime\QTSystem\;G:\svn\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\SlikSvn\bin\;C:\cygwin\bin\;C:\Program Files\apache-maven-2.2.1\bin\;C:\PsTools;C:\MinGW\msys\1.0\bin;C:\MinGW\bin

我可以从 cmd 运行 g++:

C:\Users\Hari>g++ --version
g++ (GCC) 4.4.3
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

【问题讨论】:

  • bleh.. 这是 hello world 程序。 k 我会添加代码。
  • @Raze2dust,你能编译这个sn-p吗? "int main() {}"
  • 我不知道.. 当我执行 ctrl+B 构建时,我得到 g++ 错误。无论如何,sn-p 来自一本相当知名的 Cpp 书籍,所以我不会怀疑它。现在我已将其更改为与书中给出的完全匹配。
  • 您的确切 %PATH% 值是多少?
  • 你能从命令行运行g++ (cmd.exe)吗?

标签: c++ eclipse windows-7 g++ mingw


【解决方案1】:

我使用了一种技巧。 我已经安装了 Dev-Cpp 并在其中安装了 Mingw32。 我将 Mingw32 复制到目录 c: 并将 mingw32 重命名为 c:\MinGW 并包含到 %PATH%。效果很好。

【讨论】:

    【解决方案2】:

    我有类似的问题。 刚刚从 PATH 中删除了“C:\MinGW\bin”,重新安装了 MinGW,它就可以工作了。 Ecllipse 或 CLion 不需要设置 PATH。 CLion 甚至警告“C:\MinGW\bin”不应该在 PATH 中。

    【讨论】:

      【解决方案3】:

      我在调用 MinGW gcc 编译器的 C HelloWorld 中发现了同样的问题。经过相当多的实验,我发现 MinGW binutils 包是罪魁祸首!出于某种原因,最新的 CDT 不能很好地发挥作用。改用这个,它会起作用:)

      binutils-2.21-2-mingw32-bin.tar.lzma

      注意:2.21-3 及更高版本似乎存在问题。

      此外,最新的 GDB 7.3 似乎也挂了。使用这个:

      gdb-7.2-1-mingw32-bin.tar.lzma

      编码愉快:)

      PS:路径中我什至没有 MinGW 或 MSYS。只要 MinGW 位于 C:\MinGW 中,事情似乎就可以神奇地工作。

      【讨论】:

        【解决方案4】:

        您是如何创建项目的?从 New->C++ 项目开始。然后在 Executable 下选择“Hello World C++ Project”。在工具链上,我选择了 MinGW GCC 工具链,但您可能没有安装该工具链。无论如何,这会创建一个完全可编译的可执行文件,它是学习的良好起点。它将所有包含目录、库路径等放在项目设置中。

        【讨论】:

        • 我刚刚意识到我正在运行从我的 vista 机器 g++ (GCC) 3.4.5 (mingw-vista special r3) 带来的更旧版本的 MinGW,所以这可能是发行版问题?
        • 是的,我也发现了。在我的单独答案中有更多详细信息。
        【解决方案5】:

        设置环境后尝试重新启动系统。请参考这里:

        CreateProcess: No such file or directory

        【讨论】:

          猜你喜欢
          • 2011-11-12
          • 2019-04-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-30
          • 2012-01-02
          • 2011-01-18
          相关资源
          最近更新 更多