致命错误:无法创建输出文件“project1.exe”

Posted

技术标签:

【中文标题】致命错误:无法创建输出文件“project1.exe”【英文标题】:Fatal Error: Cannot create output file "project1.exe" 【发布时间】:2012-08-04 18:48:50 【问题描述】:

所以一段时间以来我一直遇到这个问题:

在 Windows 7(64 位)上,使用 Delphi 7 和 Delphi XE2,如果我在 IDE 中编译程序、运行、停止、更改并重新运行,我会收到以下错误消息:

[致命错误] 无法创建输出文件“project1.exe”

我不知道是什么原因造成的。我搜索了更多信息,但找不到解决方案。

有两种解决方法:等待一两分钟,或者手动删除 project1.exe。不用说,这是行不通的。

我没有病毒扫描程序,也没有病毒。拥有对相关文件夹的完全访问权限。以管理员身份运行一切。

那是什么原因造成的呢?我能做些什么来解决它?

【问题讨论】:

【参考方案1】:

我感觉当您尝试重建应用程序时,project1.exe 仍在运行。也许它需要更长的时间才能关闭。您可以通过打开任务管理器轻松检查并查看进程 project1.exe 在您关闭应用程序后是否仍然处于活动状态。

【讨论】:

不,不是(除非出于某种神奇的原因,按 ctrl+f2 或关闭应用程序,不会在 Windows 7 上关闭应用程序) 这就是我建议检查的原因。此外,该文件可能正在被称为 Microsoft Security Essentials 的 Windows 内置反恶意软件解决方案使用。有时这很烦人,似乎“只是因为”而锁定文件。 如果等待一两分钟修复它,很可能是由 Diego 提到的原因引起的。您可以通过在任务管理器 processes 选项卡(不是 Applications 选项卡)中查看它来检查自己 - 启动任务管理器,在进程选项卡中找到您的应用程序,切换回 Delphi并停止您的申请。查看在任务管理器中消失需要多长时间。顺便说一句,Ctrl+F2 应该作为停止应用程序的最后手段;最好的方法是正常关闭它,除非有什么东西把它挂起来或让它陷入无限循环之类的。 @Ken:听着,别告诉我不要按 ctrl+f2。不管怎样,它都会发生。启动delphi,新建项目,运行,按关闭,在窗体上放一个按钮,按运行,瞧“无法创建...”任务管理器中没有任何内容正在运行。 (当应用程序仍在运行时,delphi 会突然将您返回到 ide,这也会让您感到惊讶)... @Marck:我不明白这种敌意。我没有说“不要这样做”;我建议你不要这样做。 “命令某人”和“提出建议”是有区别的。对于试图向您提供建设性建议,我深表歉意——我当然不是有意冒犯您。我保证以后会尽力不提供帮助。祝你好运解决这个问题和你未来的问题。【参考方案2】:

我找到了解决方案。似乎禁用服务“应用程序体验”导致了这种情况。 禁用后,“系统”任务将锁定“任何”可执行文件一段时间。

重新启用“应用程序体验”是解决方案。

通过以下方式找到:

https://superuser.com/questions/260375/why-would-system-continue-locking-executable-file-handles-after-the-app-has-exit

【讨论】:

也为我工作!这是今年的提示,我有这个问题很长时间了。我想知道如何以编程方式模拟手动文件删除,如果这对您有意义的话。 在 Delphi XE7 中,在 3 台不同的计算机上,这对我来说太烦人了。在我使用过的其他版本(包括 7、2010 和 XE2)上从未发生过。很高兴知道这个修复。至少在我的主要 IDE 机器上我已经改变了这个,现在等着看它是否会再次发生。 向找到解决方案的人致敬,一百万年后我永远不会有。我多次重新安装 XE7 试图解决这个问题。表明关闭服务以使事情变得更顺利可能会产生相反的效果。 我在 Windows 10(使用 XE8)中遇到了同样的问题,但“应用程序体验”不存在。 谢谢。我对 Delphi 10.1 Berlin 也有同样的问题【参考方案3】:

如果您正在使用 Castalia,请尝试删除它。我花了 3 天时间试图解决这个问题,我能想到的一切……文件权限,用进程资源管理器查看文件句柄。如果我安装 Castalia 2013.3.4,就会出现问题(我有重现的步骤),卸载它会使问题消失。

此外,如果您设置了“默认调试桌面”,IDE 将会崩溃,并尝试使用任何其他保存的布局在调试器下运行。 (切换到调试桌面时发生崩溃)。

【讨论】:

嘿,我遇到了同样的问题。接受的答案对我不起作用,但是,在我禁用 Castalia 后,问题就消失了。我正在使用 XE8。 我安装了 Castalia,所以禁用并重新启动 Delphi 时出现同样的问题。 “应用体验”解决方案对我来说是关键。【参考方案4】:

我右键单击应用程序(在项目组窗口中),然后选择 CLEAN。

然后我就可以编译应用程序了。

【讨论】:

【参考方案5】:

我遇到了同样的问题,我解决了。似乎在某些未知情况下,exe 应用程序仍在运行。 解决方法很简单。您必须按照以下步骤操作:

    打开windows任务管理器 转到“进程”选项卡 点击“显示所有用户的进程”,你的 exe 就会出现 选择它并按“结束进程”按钮

一切都会好起来的。

【讨论】:

这个问题通常比好战的僵尸更隐蔽。在许多情况下,可以从输出文件夹中手动删除有问题的二进制文件,这通常需要不运行任何依赖进程。【参考方案6】:

我在 XE7 上,偶尔会遇到“无法创建输出文件”问题,f2039。使用 sysinternals 的 Process Explorer,我发现一个 android 调试进程 (adb.exe) 对已编译的二进制文件有一个留置权。不知道为什么;我正在构建的这个特定的 win32 项目中没有 android 配置。无论如何,杀死 adb.exe 之后一切都很好。

一些要点。目标输出目录从未被索引。该线程中其他地方提到的“应用程序体验”一直在运行。大多数时候,尽管 XE7 抱怨,我还是可以手动删除输出二进制文件。然而,我注意到,我无法通过 shell 删除二进制文件,这提供了通过 Process Explorer 定位有问题的 adb.exe 的机会。

【讨论】:

【参考方案7】:

有时 Microsoft Security Essentials 会在文件在 Delphi 中构建后保留该文件,您需要关闭实时保护。

要检查哪个进程拥有该文件,请使用 Sysinternals Process Explorer:link。使用“查找句柄”并输入您的 exe 名称。

【讨论】:

【参考方案8】:

我似乎通过将兼容模式设置为 XP SP3 来修复它。这也解决了另一个使 Alt-P 无法打开项目菜单的烦恼。

编辑:我不必重新启用我的应用程序体验。仍然死在它应该在的地方:)

右键单击您的 Delphi 快捷方式,属性,然后选择兼容性选项卡。选择以兼容模式运行程序:Windows XP (Service pack 3)。

(我还选中了以管理员身份运行此程序框,但您可以选择不这样做。)

(这适用于 Delphi 7,根据 OP 的问题,不适用于 XE7,尽管它也可能适用于此。)

【讨论】:

不发表评论就投反对票是非常糟糕的形式。如果反对者说出原因,我将删除此消息【参考方案9】:

在我的情况下,这是由于输出文件夹不存在。

因此,您可以尝试转到项目-> 选项并在目录选项卡下,将输出目录更改为存在的文件夹,然后重试。

【讨论】:

【参考方案10】:

在我的情况下,通过从防病毒实时保护中排除项目文件夹解决了问题。

你可以手动删除EXE文件吗?如果没有,进程在内存中,打开任务管理器,选择你的项目,结束任务。您的代码中有一些错误会阻止应用程序终止。

如果不在进程列表中,则尝试:

1-从 Windows 索引或索引文件的 3rd 方文件搜索应用程序中排除文件夹

2-在windows 7中激活应用体验服务

3-从防病毒实时保护中排除项目文件夹

更新

我注意到,即使你按照我上面所说的去做,你也可能会在 Windows 7 中随机出现这个错误。特别是当你多次编译项目时......第一次编译将是好的,但十次或更多次后会出现此问题

【讨论】:

【参考方案11】:

观看此链接:How to fix Error : [dcc32 Fatal Error] F2039 Could not create output file X

只有你最把这个命令放到所有项目中。

【讨论】:

如果它解释了为什么禁用“应用程序体验”可以解决 OP 的问题,这将是一个更好的答案,尽管您的答案似乎与 MarcK 接受的答案直接矛盾。【参考方案12】:
    尝试打开windows任务管理器 如果您在此处找不到您的应用,请前往处理 然后转到详细信息选项卡即可找到它。

我遇到了同样的问题,然后我在详细信息选项卡上找到了它。

【讨论】:

【参考方案13】:

2020 年 1 月 29 日:在过去的一周中,我遇到了这样的情况:在 Win 10 机器上加载一个 Delphi 7 项目,编译它(成功),从 D7 内部运行项目(成功),重新编译项目并获得“无法创建 ....project1.exe”。重启后,可以成功编译执行,但第二次编译失败如上。 我发现 Dell Support Assist 在 8 天前(大约开始时间)有更新,所以我将其卸载。之后,D7就没有问题了。

【讨论】:

【参考方案14】:

一个对我有用的解决方案,更改项目选项 -> 链接并保持原样,然后手动删除可执行文件并解决。Project options -> linking

【讨论】:

【参考方案15】:

只需将项目保存在另一个地方即可。它对我有用。

【讨论】:

以上是关于致命错误:无法创建输出文件“project1.exe”的主要内容,如果未能解决你的问题,请参考以下文章

GitHub桌面:致命错误“无法创建/project/.git/index.lock:没有这样的文件或目录”[重复]

致命的 Python 错误:initfsencoding:无法加载文件系统编解码器

链接:致命错误 LNK1181:无法打开输入文件“zz.exe”

致命错误:无法创建包的路径

启动错误:无法创建 Java 虚拟机。发生致命异常

为啥我的 UICollectionView 无法访问我在 for 循环中创建的数组 - 致命错误:索引超出范围