【问题标题】:String variables don't work in Eclipse CDT字符串变量在 Eclipse CDT 中不起作用
【发布时间】:2016-03-26 06:32:55
【问题描述】:

当我在 Eclipse CDT(MinGW 编译器)中使用字符串变量并运行程序时,它没有显示任何内容。这是我的代码:

#include <iostream>

using namespace std;

int main() {
    string hw = "Hello, world!";

    cout << hw << endl;

    return 0;
}

所以这并没有显示任何东西,但是当我只是做 cout

我也尝试过添加&lt;string&gt;&lt;string.h&gt;"string""string.h",但仍然没有成功。不过,相同的代码在 VC++ 和 Codeblocks 中也可以工作。

【问题讨论】:

  • #include &lt;string&gt; 在哪里?
  • 它可以编译吗?有错误信息吗?
  • 我删除了它,但它不起作用,我得到一个空白控制台,当我按下 build 时,它显示 Nothing to build for [project name]。没有下划线或错误

标签: c++ eclipse string eclipse-cdt


【解决方案1】:

我可以在我的机器上重现这个问题。输出不出现。但这不是输出问题,而是在进入 main 之前实际上有两个问题:

  1. 程序无法启动。如果您尝试在 Windows 资源管理器中双击它,您将收到如下错误消息:

程序无法启动,因为缺少 libgcc_s_dw2-1.dll 你的电脑。尝试重新安装程序以解决此问题。

以上截图:

  1. 从 Eclipse 中启动时,此错误消息会被默默吞下,所以您应该怎么知道!

解决方案/解决方法

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

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

额外信息

如果您的程序可以编译,我确信它是基于您的 cmets 编译的,那么更改包含可能是无关紧要的。

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

【讨论】:

  • 我实际上遇到了你所说的错误,现在已经修复了:)谢谢!我不得不将 libstdc++-6.dll 从 C:/MinGW/bin 文件夹放入项目中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 2020-04-03
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
  • 2014-06-28
相关资源
最近更新 更多