字符串变量在 Eclipse 中不起作用 CDT
String variables don't work in Eclipse CDT
当我在 Eclipse CDT(MinGW 编译器)和 运行 程序中使用字符串变量时,它没有显示任何内容。这是我的代码:
#include <iostream>
using namespace std;
int main() {
string hw = "Hello, world!";
cout << hw << endl;
return 0;
}
所以这并没有显示任何内容,但是当我只是执行 cout << "Hello, world!" << endl;它确实有效。
我也试过包括 <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 中启动时,此错误消息会被悄无声息地吞下,所以您怎么知道!
Solutions/Workarounds
您需要正确设置环境才能启动 MinGW 程序,因为它的 DLL 未安装在 Windows PATH 或搜索 DLL 的其他标准位置。
- 将
C:\MinGW\bin
添加到您的 PATH
- 从 MinGW 中启动 Eclipse shell(与 1 的效果基本相同)
- 运行 程序处于调试模式,这导致程序作为 GCC 的子程序启动,并设置
- 其他选项(我没有尝试过)可能包括静态链接有问题的库,请参阅 The program can't start because libgcc_s_dw2-1.dll is missing
- 提交关于隐藏错误消息的 CDT bug。
额外信息
如果您的程序可以编译,正如我根据您的评论确定的那样,更改包含可能无关紧要。
通过在 cout
周围添加一个无限循环,我可以立即识别出一些事情,而不仅仅是一个未显示的输出正在发生。在您的机器上尝试相同的操作,并在 MinGW shell 内部和外部尝试 运行 程序。
当我在 Eclipse CDT(MinGW 编译器)和 运行 程序中使用字符串变量时,它没有显示任何内容。这是我的代码:
#include <iostream>
using namespace std;
int main() {
string hw = "Hello, world!";
cout << hw << endl;
return 0;
}
所以这并没有显示任何内容,但是当我只是执行 cout << "Hello, world!" << endl;它确实有效。
我也试过包括 <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 中启动时,此错误消息会被悄无声息地吞下,所以您怎么知道!
Solutions/Workarounds
您需要正确设置环境才能启动 MinGW 程序,因为它的 DLL 未安装在 Windows PATH 或搜索 DLL 的其他标准位置。
- 将
C:\MinGW\bin
添加到您的PATH
- 从 MinGW 中启动 Eclipse shell(与 1 的效果基本相同)
- 运行 程序处于调试模式,这导致程序作为 GCC 的子程序启动,并设置
- 其他选项(我没有尝试过)可能包括静态链接有问题的库,请参阅 The program can't start because libgcc_s_dw2-1.dll is missing
- 提交关于隐藏错误消息的 CDT bug。
额外信息
如果您的程序可以编译,正如我根据您的评论确定的那样,更改包含可能无关紧要。
通过在 cout
周围添加一个无限循环,我可以立即识别出一些事情,而不仅仅是一个未显示的输出正在发生。在您的机器上尝试相同的操作,并在 MinGW shell 内部和外部尝试 运行 程序。