使用MinGW的Eclipse CDT不会在控制台中输出

时间:2010-08-09 18:59:05

标签: eclipse console mingw eclipse-cdt

我有一台Windows 7 64位PC,我正在尝试安装一个免费的C ++ IDE,所以我选择安装带有CDT的Eclipse Helios。

对于g ++,make和gdb我根据本教程安装了msys和mingw: http://wiki.wxwidgets.org/HowTo:_Install_MSYS_and_MinGW_for_use_with_Eclipse_CDT

版本是:

  • make:GNU make 3.81
  • g ++:4.5.0
  • gdb:7.1

所以它应该与我的64位CPU兼容。

然而,当我尝试使用eclipse运行一个非常简单的程序时,我在控制台上看不到任何内容。源代码是:

#include <iostream>

 using namespace std;

 int main()
 {
    int i;

    cout << "Enter an integer: " << endl;
    cin >> i;
    cout << endl << "i is " << i << endl;

    return 0;
 }

构建很好,当我使用命令(Windows控制台)启动.exe时,行为符合预期。 但是使用Eclipse控制台我看不到运行和调试输出只是: “输入一个整数:”,然后当我输入一个数字并点击输入时,它什么都不做。

有人知道如何解决这个问题吗?

谢谢,

纪尧姆

PS:我使用工具链“Linux GCC”,“MinGW GCC”我在控制台中什么都没有。

9 个答案:

答案 0 :(得分:139)

这对我使用MinGW在Windows 7上64位安装Eclipse起了作用:

右键单击您的项目。选择“属性”。

选择新窗口左侧的“运行/调试设置”属性。

在右侧窗口中,单击您的可执行文件以突出显示(即 - Test.exe),然后单击“编辑”。

在“环境”标签中,点击“新建”

姓名:路径
值: MinGW bin目录的路径。 (对我来说,这是:C:\devcore\MinGW\bin

在所有窗口上单击“确定”关闭。

再试一次,它应该将输出打印到屏幕上。

答案 1 :(得分:8)

您需要设置链接器 我正在使用MinGW。

按照以下步骤操作。

Goto Project > Properties > C/C++ Build > Settings > Tool Settings (Tab) > MinGW C++ Linker (Option) > Add Command (g++ -static-libgcc -static-libstdc++)   (default command is only g++)

答案 2 :(得分:7)

purlogic的解决方案有效。 而不是为每个项目设置它,我发现它可以全局设置:

在窗口中 - &gt;首选项&GT; C / C ++ - &gt;构建 - &gt;环境 为编译器添加变量。例如,我补充说: MINGW,值为“C:\ MinGW \ bin”

答案 3 :(得分:5)

在64位版本的eclipse中已经注意到这个控制台错误:

http://www.eclipse.org/forums/index.php?t=msg&th=197552&start=0&S=2a2b64e1f1404705c0214976bd477428

解决方法是安装32位日食

答案 4 :(得分:2)

我遇到了同样的问题,因为在一台PC上安装了多个gcc。但是Greg's solution只对我有用。

在我的情况下,明确地没有在应用程序中完成刷新。虽然C ++程序经常使用std::cout << ... << std::endl endl执行刷新,但我的程序使用实际的C输出,例如通常的printf。在cmd窗口中启动程序时,可以直接看到printf。然而在eclipse控制台中他们失踪了。因此一个

fflush(stdout);
printf为我做了这件事之后

。这可能是eclipse控制台实现中的一个问题。我想这就是为什么修复Path对这里的某些人不起作用的原因。

替代解决方案,而不是在&#34; Run&#34;中设置PATH。设置是使用批处理文件启动整个eclipse,看起来基本上是这样的:

set PATH=<mymingwlocation>\bin;%PATH%
start <myeclipselocation>\eclipse.exe

然后,默认情况下,任何运行配置都将使用正确的MingW位置。这也可能解决使用错误的gcc可能引起的其他问题。

答案 5 :(得分:1)

您是否尝试过使用管理员权限执行eclipse.exe?它对我有用!

答案 6 :(得分:1)

这个问题在64/32位日食Kepler CDT上运行在openCV / wxWidgets工具Win7上,使用MinGW构建。

如果有人在遇到此问题时遇到此问题并且正在使用openCV,您就会知道在互联网上有许多过时的openCV构建/安装说明。

我曾经去过Build Build - &gt;链接器 - &gt;杂项和链接标志文本输入框内,键入         -Wl,--subsystem,windows -mwindows 但是,这会禁止cout输出到Windows中的命令行终端。

进行更多挖掘看起来是有意的,显然-mwindows涉及将STDOUT从命令行专门指向类似GUI的应用程序。

此外,删除-mwindows并且只需离开-Wl,--subsystem,windows即可完成重定向STDOUT的任务,无论如何都要远离命令行。

现在请注意,我还没有在涉及wxWidgets和openCV的hello world程序之外构建任何东西,所以我不想在GUI的一部分做一个cout所以我没有&#39 ; t知道现在该功能是否会被破坏,或者是否会打印到GUI对象以及命令行终端。

答案 7 :(得分:0)

或者设置链接器选项-static。 至少对我有用。

答案 8 :(得分:0)

通过运行->运行配置->在“环境”选项卡中,将PATH变量(PATH =“ your MinGW / bin目录路径”)添加到C ++项目中

enter image description here