为什么.exe文件编译后会被锁定?

问题描述 投票:0回答:1

如果我用

Test.cpp
编译
g++ -o Hello_World Test.cpp
,我会得到
Hello_World.exe
。如果我再次运行
g++ -o Hello_World Test.cpp
,我会收到收集 2 错误:

目标是将

Test.cpp
编译为
Hello_World.exe
(但连续两次)。这是我的步骤:

  1. 在终端中:
    g++ -o Hello_World Test.cpp
  • 这将成功创建
    Hello_World.cpp
  1. 使用
    ./Hello_World.cpp
  2. 进行测试
  • 程序已编译完成
  • 我也尝试过没有这一步,但后来出现了同样的错误
  1. 再次编译:
    g++ -o Hello_World Test.cpp
  • 这是发生collect 2错误的地方,导致文件无法编译。
  1. 如果我右键单击
    Hello_World.cpp
    并尝试将其删除,则会收到错误消息
    The action cannot be completed because the file is open in another program
    。我尝试使用
    resmon.exe
    查看正在运行的
    .exe
    文件,但我无法弄清楚是什么在使用
    Hello_World.exe
    ,而且
    Hello_World.exe
    本身也没有打开。如果我使用
    rm Hello_World.cpp
    ,我会收到一条错误消息,提示我没有权限。

如果有人知道可能会发生什么,我将不胜感激。

c++ compilation collect
1个回答
0
投票

如果有人知道可能会发生什么,我将不胜感激。

嗯,很简单。该应用程序在后台运行。您可以检查您的TaskManager并从那里杀死它。

究竟是什么原因导致应用程序在后台继续运行,需要进行更多调查才能查明。


Sublime 中发生这种情况的最常见原因是当您运行交互式应用程序时。 Sublime 不会将您在输出面板中输入的任何输入转发到正在运行的程序,因此它实际上永远挂在后台等待您无法提供的输入。

© www.soinside.com 2019 - 2024. All rights reserved.