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

我有一台Windows 7 64位电脑,我试图安装一个免费的C ++ IDE,所以我select用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; } 

生成是好的,当我启动.exe与命令(Windows控制台)的行为是预期的。 但在Eclipse控制台中,我看不到任何运行和debugging输出只是:“input一个整数:”,然后当我input一个数字,然后按回车它什么都不做。

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

谢谢,

纪尧姆

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

这个控制台bug在64位版本的eclipse中已经被注意到了:

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

解决方法是安装32位的eclipse

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

用鼠标右键单击您的项目。 select“属性”。

select新窗口左侧的“运行/debugging设置”属性。

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

在环境选项卡中,点击“新build”

名称: PATH
值: MinGW bin目录的path 。 (对我来说这是: C:\devcore\MinGW\bin

点击所有窗口上的“确定”closures。

尝试再次运行,它应该打印输出到屏幕上。

你需要设置我使用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++) 

purlogic的解决scheme的作品。 而不是为每个项目设置,我发现它可以在全球设置:

在窗口 – >首选项 – > C / C ++ – >生成 – >环境为您的编译器添加一个variables。 例如,我添加了:MINGW,值为“C:\ MinGW \ bin”

我遇到了同样的问题,因为在一台PC上安装了多个gcc。 但是, 格雷格的解决scheme只为我工作。

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

 fflush(stdout); 

printf之后为我做了这件事。 这可能是eclipse控制台实现中的一个问题。 我想这就是为什么修复path没有为这里的一些人工作。

另一种解决办法是不用在“运行”设置中设置PATH,而是使用一个batch file来启动整个日食,这个batch file基本上是这样的:

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

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

你有没有试图用pipe理员权限执行eclipse.exe? 它为我工作!

这个问题在64位/ 32位eclipse Kepler CDT上使用MinGW构build的openCV / wxWidgets工具Win7上工作。

如果有人遇到这个问题,并与openCV一起工作,你将已经知道在互联网上有许多过时的openCV编译/安装说明。

我有一个是去build设设置 – >链接器 – >杂项和链接器标志文本input框中,键入-Wl,--subsystem,windows -mwindows但是,这将禁用输出到命令行terminal的cout视窗。

做更多的挖掘这看起来有意为之,显然-mwindows涉及将STDOUT从命令行专门引导到类似于GUI的应用程序。

同样,删除-mwindows并只是在-mwindows -Wl,--subsystem,windows完成将命令行redirect到命令行的任务。

现在请注意,我还没有在涉及wxWidgets和openCV的hello世界程序之外build立任何东西,所以我不在做一个GUI的一部分,所以我不知道这个function是否会现在会被破坏,或者如果它打印出来的GUI对象,以及命令行terminal。

或者设置链接器选项-static 。 至less适用于我。