我正在使用Windows 7 64位。
我安装了eclipse版本3.6.2,cdt和MinGW。我在Eclipse中有一个C ++控制台程序,如下所示:
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
setbuf(stdout, NULL);
for (int i = 0; i < 10000000; i++) {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
}
int val;
cin >> val;
return 0;
}
如果我运行此控制台程序,它应该在Eclipse中向控制台视图显示Hello world
,但不显示任何内容。
如果我转到调试文件夹并运行exe,它会打印到控制台。
如果我犯了一些语法错误,那么Eclipse Console View将显示一些内容,例如:
**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\hh.o ..\src\hh.cpp
..\src\hh.cpp: In function 'int main()':
..\src\hh.cpp:17:3: error: expected ';' before 'return'
Build error occurred, build is stopped
Time consumed: 255 ms.
为什么Eclipse控制台视图中没有显示任何内容以及如何使我的C ++控制台程序显示输出?
答案 0 :(得分:22)
我从这个网站找到了一个解决方法: http://www.eclipse.org/forums/index.php?=42e862594001fa4469bbc834885d545f&t=msg&th=197552
在该链接上,查看“无实名”的回复。
如果链接出现故障,请输入以下内容:
Environment: jdk1.6u18 64bit + Eclipse Helios 64bit + win7 64bit
No console output at "Run", but output correctly at "Debug".
The following method worked for me:
1. Goto Project->Properties->Run/Debug Settings, choose the .exe file
and press "Edit"
2. In the "Environment" tag, press "New", set it as:
"Name:PATH"
"Value:C:\MinGW\bin"
In fact, I have already set "C:\MinGW\bin" in windows PATH environment
variable, but it seemed to not work.
答案 1 :(得分:4)
问题是你的程序使用MinGW的dll库 - 尝试手动启动exe文件,它会报告一些关于缺少dll的错误。
解决方案可以是,将所需的dll复制到项目目录中的.exe文件(以及Release或Debug子目录,取决于您使用Run命令执行的.exe)。
或者,在菜单中运行 - &gt;运行配置选择用于该.exe文件的配置(或创建新的C / C ++应用程序配置),然后在右侧面板中选择环境选项卡。添加名为 PATH 的新变量,其值为 c:\ MinGW \ bin (这是mingw \ bin目录的默认路径,如果它位于其他位置,请使用对您的安装有效的路径)
编辑:现在我正在查看Vikyboss的帖子,它实际上是相同的 - 在运行配置中设置PATH变量。在首选项&gt;中设置PATH变量C / C ++(展开它)&gt; Sydraps描述的环境对我不起作用。
但我认为静态链接库可能是最适合您的解决方案。在菜单项目 - &gt;属性选择 C / C ++ Build - &gt;设置的。在右侧面板中选择要更改的配置(可以选择全部)。在选项卡工具设置中选择 MinGW C ++ Linker - &gt;其他并在链接器标记的右侧面板中键入 -static 。现在.exe会因库的大小而膨胀(在我的情况下,对于Hello world示例大约需要+ 900kB,需要2个dll),但它在任何库中都是独立的。
我希望这对尝试使用Eclipse C / C ++的人有所帮助,并想知道为什么控制台中没有Hello世界。 Ales Chlubny
答案 2 :(得分:3)
我在Windows 7 x64 PC上解决了这个问题。在Eclipse窗口中,转到Preferences&gt; C / C ++(展开它)&gt;环境&gt;添加:
"Name:PATH"
"Value:C:\MinGW\bin"
如果这不能解决问题。尝试将以上内容添加到计算机上的PC上的系统环境变量&gt;高级系统设置
答案 3 :(得分:2)
我找到原因,只是因为我正在使用64位日食!
我转向32位eclipse,相同的代码工作正常。
答案 4 :(得分:2)
当我以管理员身份运行eclipse时,解决了在控制台中显示hello world(64位Windows7)的问题。
我将C:\MinGW\bin
添加到环境变量路径,然后以管理员身份启动eclipse
答案 5 :(得分:1)
我从Eclipse向导创建了一个Hello World C ++项目(MinGW GCC)应用程序,剪切并粘贴了您的代码,编译得很好。然后在运行之前我将循环减少到10并且运行正常。
您没有说明您是如何创建项目的,但似乎您可能缺少某些包含指令或库路径。另外我没有看到需要包含或setbuf(stdout,NULL)。我还发现在进行故障排除时没有将整个命名空间纳入范围有用。而是这样做: 使用std :: cout; 使用std :: cin;
最后,每次用&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ENDL;看起来有点矫枉过正,在字符串的末尾添加一个简单的\ n会更有效。
(我在Win 7 64位上做了所有这些 - 但我使用的是32位版本的Eclipse Galileo)
答案 6 :(得分:1)
如果您使用的是MinGW编译器,
添加
-static-libgcc -static-libstdc++
作为新的链接器标记 项目。此文本应添加到链接器标志字段中 可以通过右键单击项目中的新项目来找到 资源管理器并单击属性。在项目属性下, 展开C / C ++ Build菜单,然后单击Settings。在工具下 在Settings选项卡中,展开MinGW C ++ Linker菜单并单击 杂。将文本添加到链接器标志字段,然后单击 应用按钮。
答案 7 :(得分:0)
对于我来说,安装32位版本的Eclipse(Indigo 3.7)和32位Java JDK / JRE不起作用。我使用 Eclipse CDT / User / FAQ :
中更快的解决方案引自Eclipse CDT/User/FAQ - Eclipse console does not show output on Windows:
Eclipse控制台在Windows上不显示输出在Eclipse CDT中 Windows,正在运行或调试的程序的标准输出是完全的 缓冲,因为它没有连接到Windwos控制台,而是连接到 管。有关更多详细信息,请参阅错误173732。之后添加fflush调用 每个printf或在main的开头添加以下行 功能:
setvbuf(stdout, NULL, _IONBF, 0); setvbuf(stderr, NULL, _IONBF, 0);
答案 8 :(得分:0)
我的eclipse-cdt问题,新的C ++项目&gt; hello world(cygwin gcc),右键单击exe文件,运行为,控制台上没有显示任何内容。与c项目相同。
我看到我的eclipse版本已经是32位了。
我想出来了,这里是我的解决方案:
eclipse cdt中有几个编译配置文件:发布和调试。 eclipse cdt中的默认配置文件是debug。因此,使用“run as”启动exe不起作用,您应该使用“debug as”启动它。在我的情况下,我使用了最近安装了gcc的cygwin安装,但是还没有安装gdb。我不得不使用cygwin-setup在cygwin中安装gdb包。我使用“debug as”重新编写了exe,并且它有效。
我想使用发布配置文件而不是默认调试配置文件,重建也有效,我猜它与mingw环境相同。
答案 9 :(得分:0)
刚刚将C:\ MinGW \ bin添加到环境变量&#39;路径&#39;在Windows 7 64位。 现在Console输出消息
答案 10 :(得分:0)
我遇到了类似的问题。
环境:
jdk1.6u18 64bit + Eclipse Helios 64bit + win7 64bit
“Run”没有控制台输出,但在“Debug”处输出正确。
以下方法对我有用:
转到项目&gt;属性&gt;运行/调试设置
选择.exe文件并按“编辑”
在“环境”标签中,按“新建”,将其设置为:
“姓名:PATH”
“值:C:\ MinGW的\ BIN”
事实上,我已经将“C:\ MinGW \ bin”设置为Windows PATH环境变量,但它似乎不起作用。
答案 11 :(得分:0)
通过Eclipse Kepler 64位管理员为我工作。
答案 12 :(得分:0)
如果有人感兴趣,我发现如何在Windows XP上永远修复它(可能在其他Windows版本中工作),而无需指定每个可执行文件的变量等等:
启动菜单&gt; RightClick 在MyComputer &gt; 属性&gt; 高级选项&gt; 环境变量
在&#34;用户变量&#34;领域,
<强> C:\ MinGW的\ BIN 强>
实施例: C:\ SomeDirectory; C:\另一个;的 C:\ MinGW的\ BIN 强>
名称:路径
值: C:\ MinGW \ bin
全部接受,你应该得到控制台输出:)