当我在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
  你的电脑。尝试重新安装该程序以解决此问题。


上面的屏幕截图:

c&#43;&#43; - 字符串变量在Eclipse CDT中不起作用-LMLPHP


从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内部和外部运行程序。

09-28 10:12