【问题标题】:No output in c++-program if object is instantiated using Eclipse如果使用 Eclipse 实例化对象,则 c++ 程序中没有输出
【发布时间】:2023-03-29 23:55:02
【问题描述】:

在我的 Windows 7 32 位机器上安装 Eclipse Kepler 后遇到问题。我安装了 CDT 和 MinGW 编译器。我通过将 MinGW 添加到 PATH 来配置安装,并使用“Hello world”程序测试了我的配置,该程序有效。

奇怪的是,如果我实例化一个对象,什么都不会输出。它是 std::string 还是定制类都没有关系。如果我实例化它,则不会输出任何内容,即使它应该在实例化之前输出。如果我从命令行使用 cygwin gcc 编译它,完全相同的代码可以正常工作。如果我将工具链更改为 cygwin gcc,则没有任何变化(我已经使用“build all”重建了程序)。

没有显示错误,也没有列出任何问题。

这是最小的工作示例:

#include <iostream>
#include <string>
using namespace std;

class SayWorld{
public:
    SayWorld(){
        cout << "World!" << endl;
     }
};

int main() {
    //Only gets outputted, if the lines, that don't work are commented out:
    cout << "Hello ";

//  Works:
    cout << "World!" << endl;

//  Doesn't work:
//  SayWorld sw;

//  Also doesn't work:
//  string str("World!");
//  cout << str << endl;

    return 0;
}

编辑 2: 正如这张 Cygwin-Bash-Terminal 的图片所示,我将错误范围缩小到 MinGW。 (文件在到 g++ 调用之间没有更改,并且包含上面的示例)

编辑 1(旧版) 工具链图片: -图片已删除-(认为没有必要)

【问题讨论】:

  • 请进行完全重建,以确保您没有使用过时的二进制文件。因为在这里可以正常工作,另请参阅:ideone.com/fVfCCO
  • 正如我所写:对我来说,当我从命令行构建它时,它也可以正常工作。我用“全部构建”多次重建它,干净,我什至尝试手动删除.exe ...没有帮助:-(
  • “如果我将工具链更改为 cygwin gcc 没有任何改变”,这很奇怪——它甚至不应该编译,因为 std::string 不在 c 中。你确定你没有运行另一个二进制文件,也许来自另一个项目?
  • @RandolphCarter:我添加了一张图片。 Eclipse 似乎只使用 Cygwin GCC 作为标题。当然它仍然使用 g++ 来编译我的代码,否则你肯定是对的。 (错误在编辑器中照常标记...)

标签: c++ windows eclipse mingw


【解决方案1】:

重新安装eclipse和MinGW后,按照这个视频教程一步一步来:

http://www.youtube.com/watch?v=77xZOT3xer4

之后遇到同样的问题,我在 eclipse 论坛上偶然发现了这个帖子:

http://www.eclipse.org/forums/index.php/u/104305/

这让我想到了这个解决方案:

右键项目 -> 属性 -> 运行/调试设置 选择可执行文件并点击“新建”按钮。 转到 Environment-Tab 并创建一个名为 PATH 的新变量,其值为:“C:\MinGW\bin”。

由于我不是专家,我无法向您解释它为什么有效,但它对我有效。如果有人知道如何更好地做到这一点或完全避免这个问题,我很乐意倾听。

这个条目确实在我的 Windows-PATH...

PS.:问题似乎也在这里已知: unable to see the output of c++ program in the console

【讨论】:

    猜你喜欢
    • 2015-05-09
    • 2021-10-19
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多