【问题标题】:Eclipse C++ see output only when debuggingEclipse C++ 仅在调试时查看输出
【发布时间】:2013-01-01 12:14:58
【问题描述】:

我使用“cygwin GCC”工具链在 Eclipse 中创建了 c++“Hello World”示例项目。

项目编译并运行。问题是我在下面的控制台中没有看到我的“Hello World”输出。

有趣的事实是,当我在“调试”模式下运行我的项目时,我确实在执行后看到了输出:

    cout << "!!!Hello World!!!" << endl; 

如何在简单的“运行模式”中查看控制台输出? 我正在使用 Eclipse Juno...

【问题讨论】:

  • 您是否正在使用 64 位 Eclipse?

标签: eclipse console eclipse-cdt output


【解决方案1】:

感谢@einpoklum,按照您的链接,我找到了解决方案!

确保以管理员身份运行 Eclipse!就是这样:)

当然如果还是不行,参考@einpoklum的回答。

【讨论】:

  • 其实,这应该没有是必要的。毕竟很多用户不能使用管理员权限。你能准确地说出你需要它们做什么吗?
  • 嗯...我不完全明白为什么我需要管理员权限。但它确实解决了问题。在这里找到它:stackoverflow.com/a/9779984/930171
  • 它只是转移了问题,并没有解决它,因为您实际上并不需要管理员权限。您需要阻止 Eclipse 或 GCC 或其他什么东西尝试需要管理员权限的东西。
  • 终于。谢谢你的回答。不需要它会很好,但我不想像其他人建议的那样找出源问题,我只想让它工作。
【解决方案2】:

这是一个被广泛报道的问题,有多种可能的解决方案。

  • 它可能是您的 PATH 环境变量。确保它包含 C:\Cygwin\bin 或您安装 Cygwin 的任何位置。如果缺少该信息,您可能无法加载 cygwin1.dll 并且 Eclipse 的报告不够好。
  • 可能是由于输出缓冲。尝试添加

    setvbuf(stdout, NULL, _IONBF, 0);
    setvbuf(stderr, NULL, _IONBF, 0);`
    

    在你的 main 函数的开始处。

  • 有些人suggest 正在尝试 32 位版本的 Eclipse(和 JRE)。我会尽量避免走那条路……

【讨论】:

  • 我已将 C:\Cygwin\bin 添加到我的 PATH 环境变量中,没有任何改变。那些缓冲区命令也没有帮助。为了清楚起见,我创建了一个新的 C++ 项目使用 cygwin 工具链的模板(Hello World)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 2013-10-15
  • 2015-03-21
相关资源
最近更新 更多