【问题标题】:Codeblocks on linux mint Process terminated with status -1linux mint进程上的代码块以状态-1终止
【发布时间】:2020-03-06 08:31:39
【问题描述】:

所以我刚刚在 Lnux mint 19 上安装了代码块,但我遇到了问题。 我运行了通常的 hello world 程序,但得到“进程以状态 -1 终止”。 “构建”部分有效,但是当我点击“运行”时,我得到了那个错误。我已安装 g++ 并将其设置为默认编译器。有什么想法吗?

尝试了我在互联网上可以找到的所有内容。添加了代表,尝试从软件中心和终端安装,结果相同。

int main()
{
cout << "Hello world!" << endl;
return 0;
}

进程以状态 -1 终止

【问题讨论】:

  • 您是否正确安装了xterm?

标签: c++ linux codeblocks linux-mint


【解决方案1】:

您的默认 Linux 终端似乎与调用 C 函数不兼容。尝试在主终端另外安装一个普通的 xterm:

$ sudo apt install xterm

现在尝试运行您的代码。

如果没有帮助,您还可以尝试更改代码块中的默认终端:转到设置 > 环境 > 常规设置,例如将终端更改为“gnome-terminal”。

如果失败,实际的 X 显示错误将有助于进一步排除故障:

$ tail -f ~/.xsession-errors

现在尝试运行您的代码并检查您的终端是否有最新的 xsession 错误。最有可能的是,它会以“错误设置文件元数据:”开始,您可能会在此处找到完整的错误消息。

【讨论】:

    【解决方案2】:

    据我所知,从您发布的最少量代码来看,您缺少包含。 如果你没有丢失包含,你就不会告诉你的编译器 coutendl 在哪里。

    您的代码应该如下所示:

    #include <iostream>
    
    int main() {
        using std::cout;
        using std::endl;
    
        cout << "Hello, World!" << endl;
    
        return 0;
    }
    

    这里有一个简短的解释。

    #include &lt;iostream&gt; 告诉预处理器将此头文件加载到您的翻译单元(CPP 文件)中,以便您拥有使用不同对象、函数和 STL 的其他成员所需的所有前向声明。

    using std::cout && using std::endl 这两段代码具体告诉编译器您希望使用 std 命名空间的哪些成员。 我建议使用这种方法(即使它看起来很乏味),而不是using namespace std;。 通过using 整个命名空间,在这种情况下,您正在污染您的全局命名空间。

    请参阅this question 了解更多示例,了解为何应避免使用using namespace

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多