使用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适用于我。