当我在Eclipse CDT(MinGW编译器)中使用字符串变量并运行程序时,它什么都没有显示。这是我的代码:
#include <iostream>
using namespace std;
int main() {
string hw = "Hello, world!";
cout << hw << endl;
return 0;
}
所以那什么都没显示,但是当我只是喊着<
我也尝试包括
<string>
,<string.h>
,"string"
和"string.h"
,但仍然没有成功。相同的代码在VC ++和代码块中确实起作用。 最佳答案
我可以在机器上重现此问题。输出不会出现。但这不是输出问题,但在进入main之前实际上是两个问题:
该程序无法启动。如果尝试在Windows资源管理器中双击它,将收到以下错误消息:
该程序无法启动,因为缺少libgcc_s_dw2-1.dll
你的电脑。尝试重新安装该程序以解决此问题。
上面的屏幕截图:
从Eclipse中启动时,此错误消息会被静默吞下,因此您应该怎么知道!
解决方案/解决方法
您需要正确设置环境以启动MinGW程序,因为其DLL未安装在Windows PATH或搜索DLL的其他标准位置上。
将C:\MinGW\bin
添加到您的PATH
从MinGW shell中启动Eclipse(效果与1基本相同)
在调试模式下运行程序,这将导致程序作为GCC的子级启动并进行设置
其他选项(我没有尝试过)可能包括静态链接有问题的库,请参见The program can't start because libgcc_s_dw2-1.dll is missing
归档有关隐藏的错误消息的CDT bug。
额外信息
如果您的程序可以编译,就像我确信它是根据您的注释那样编译的,则更改包含可能无关紧要。
通过在cout
周围添加无限循环,我可以立即识别出一些内容,而不仅仅是显示未显示的输出。在您的计算机上尝试同样的事情,还尝试从MinGW shell内部和外部运行程序。