【问题标题】:Why won't Code::Blocks Build->Abort kill my running C++ program?为什么 Code::Blocks Build->Abort 不会杀死我正在运行的 C++ 程序?
【发布时间】:2013-12-05 05:40:52
【问题描述】:

我在 Windows 7 上使用 Code::Blocks 12.11。

我正在编写用于学习的小程序,它们似乎不包含任何无限循环,但无论如何,Build->Abort 在我发现我必须在 Build- 之后出于某种原因使用它的情况下不起作用 - >运行。

在最近的案例中,屏幕底部“日志和其他”窗口的“构建日志”选项卡中显示以下内容。

检查是否存在:C:\CodeBlocks\Test_Cpp11\bin\Debug\Test_Cpp11.exe 执行: “C:\Program Files (x86)\CodeBlocks/cb_console_runner.exe” “C:\CodeBlocks\Test_Cpp11\bin\Debug\Test_Cpp11.exe”(在 C:\CodeBlocks\Test_Cpp11.)

退出Code::Blocks,重新进入,重新打开项目,立即运行程序,运行正常。

编辑:我发现了问题。如果显示 cout 语句的“控制台窗口”仍然打开,那么您将看到灰色的 Build->Run 和 Build->Build 项目,直到您关闭该窗口。我当时需要执行 Build->Abort 的假设是不正确的。正如下面的答案所指出的那样,无论如何这不会中止正在运行的项目进程,只会中止可能正在运行的构建/编译进程。

【问题讨论】:

    标签: codeblocks


    【解决方案1】:

    当先前的执行没有正确终止时会发生这种情况。 在 Windows 上,打开任务管理器并终止包含上次运行输出的命令行进程。这样做会将构建/运行的图标恢复为绿色,并且它们可用。

    【讨论】:

    • 你知道要杀死的命令行进程的名称是什么吗?
    • @YuDeng 我认为它可能因项目/文件类型而异,但对于控制台应用程序,它被称为 cb_console_runner.exe
    【解决方案2】:

    要在调试时终止正在运行的进程,请单击调试栏上的红色“X”按钮。这是下图中名为“Stop Debugging”的按钮。



    在 Code::Blocks 中,Build->Abort 菜单项将中止构建(制作或编译)您的项目。它与杀死正在运行的进程无关。希望对您有所帮助。

    【讨论】:

    • 我查看了调试菜单,几乎所有内容都显示为灰色,包括“停止调试器”。我刚刚做了一个 Build->Run 来运行程序。感谢您提供有关 Abort/Running Process 的信息。
    • 实际上,我刚刚发现我的错误,因为它在成功 lrun 后再次出现。如果显示 cout 语句的输出窗口一直打开,则无法重建。因此,一旦我关闭,我就可以再次构建或运行。
    • 要调试程序,可以点击调试>>开始或按F8键,这是开始调试的快捷键。使用 Build >> Run 会将程序作为独立进程运行,而 Code::Blocks 将无法控制它。
    • @Scooter 我认为我的答案仅添加到您的问题中。您可以将我的答案标记为正确并关闭问题。
    • 这是错误的。构建中止按钮肯定会杀死正在运行的进程。它应该这样做,它也这样做。然而,有一个有点烦人的错误(至少在我目前的构建中,可能已在 SVN 中修复)导致控制台运行器帮助程序进程持续存在,这会阻止您在之后进行另一个构建或重建。 “停止调试”按钮与它无关。
    【解决方案3】:

    当应用程序完成并从其main 函数返回时,它会提示您“按任意键继续”。

    一旦您这样做,这将中止启动的过程,并且构建按钮将不再显示为灰色。

    【讨论】:

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