c++ - 字符串变量在 Eclipse CDT 中不起作用

标签 c++ eclipse string eclipse-cdt

当我在 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 之前实际上有两个问题:

  1. 程序无法启动。如果您尝试在 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.

以上截图:

screenshot of above quoted error

  1. 当从 Eclipse 中启动时,这条错误消息会被悄无声息地吞掉,所以你怎么知道!

解决方案/解决方法

您需要正确设置环境才能启动 MinGW 程序,因为它的 DLL 未安装在 Windows PATH 或搜索 DLL 的其他标准位置。

  1. C:\MinGW\bin 添加到您的 PATH
  2. 从 MinGW shell 中启动 Eclipse(与 1 的效果基本相同)
  3. 在 Debug模式下运行程序,这会导致程序作为 GCC 的子项启动并设置
  4. 其他选项(我没有尝试过)可能包括静态链接有问题的库,参见 The program can't start because libgcc_s_dw2-1.dll is missing
  5. 提交 CDT bug关于被隐藏的错误信息。

额外信息

如果您的程序可以编译,我相信它会根据您的评论进行编译,那么更改包含可能无关紧要。

通过在 cout 周围添加一个无限循环,我可以立即识别出一些事情,而不仅仅是一个未显示的输出正在发生。在您的机器上尝试同样的操作,并尝试从 MinGW shell 内部和外部运行该程序。

关于c++ - 字符串变量在 Eclipse CDT 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34374425/

相关文章:

vb.net - 在 VB.NET 字符数组中添加 "c"有什么作用?

java - 如何在openCv中训练两个不同大小的物体

c++ - 查找总和等于 k ​​的子集的数量

java - 如何创建 Java 独立应用程序

eclipse - 在 Eclipse 中更改字体大小的键盘快捷键?

java - 为什么我在 Eclipse 中收到 "Selection does not contain a main type"消息?

c# - 正则表达式模式匹配 : Using only the start and end of a pattern for matching

Java toString 方法 - 打印不正确

c++ - 为什么一个定义规则,而不是一个声明规则?

c++ - 将 C++ 函数指针分配给同一对象的成员函数