当我在 Eclipse CDT(MinGW 编译器)中使用字符串变量并运行该程序时,它没有显示任何内容。这是我的代码:
#include <iostream>
using namespace std;
int main() {
string hw = "Hello, world!";
cout << hw << endl;
return 0;
}
所以这并没有显示任何内容,但是当我只是执行 cout << "Hello, world!"<< 结束;它确实有效。
我也试过包括<string>
, <string.h>
, "string"
和 "string.h"
但仍然没有成功。不过,相同的代码在 VC++ 和 Codeblocks 中确实有效。
最佳答案
我可以在我的机器上重现这个问题。输出没有出现。但这不是输出问题,而是在进入 main 之前实际上有两个问题:
- 程序无法启动。如果您尝试在 Windows 资源管理器中双击它,您将收到如下错误消息:
The program can't start because libgcc_s_dw2-1.dll is missing from your computer. Try reinstalling the program to fix this problem.
以上截图:
- 当从 Eclipse 中启动时,这条错误消息会被悄无声息地吞掉,所以你怎么知道!
解决方案/解决方法
您需要正确设置环境才能启动 MinGW 程序,因为它的 DLL 未安装在 Windows PATH 或搜索 DLL 的其他标准位置。
- 将
C:\MinGW\bin
添加到您的PATH
- 从 MinGW shell 中启动 Eclipse(与 1 的效果基本相同)
- 在 Debug模式下运行程序,这会导致程序作为 GCC 的子项启动并设置
- 其他选项(我没有尝试过)可能包括静态链接有问题的库,参见 The program can't start because libgcc_s_dw2-1.dll is missing
- 提交 CDT bug关于被隐藏的错误信息。
额外信息
如果您的程序可以编译,我相信它会根据您的评论进行编译,那么更改包含可能无关紧要。
通过在 cout
周围添加一个无限循环,我可以立即识别出一些事情,而不仅仅是一个未显示的输出正在发生。在您的机器上尝试同样的操作,并尝试从 MinGW shell 内部和外部运行该程序。
关于c++ - 字符串变量在 Eclipse CDT 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34374425/