我在lazarus中使用对象pascal。当我打开一个旧项目并试图运行它时;在源代码编辑器中弹出以下代码窗口:
program TimeKeeper;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, TimeKeeperU1;
{$R *.res}
begin
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TfrmTimeKeeper, frmTimeKeeper);
Application.Run;
end.
此代码窗口在源窗口中弹出错误,与这些错误是成对的:
(20,1)错误代码:无法创建对象文件:TimeKeeper.exe(错误代码:5)TimeKeeper.lpr(20,1)错误:无法创建可执行文件TimeKeeper.exe
有人知道解决方法吗?
2条答案
按热度按时间ee7vknir1#
错误消息指出无法创建目标文件,这将导致应用程序无法创建。错误代码5表示 * 访问被拒绝 *,这意味着您没有对编译器和链接器试图存储输出的目录的写入权限,或者可执行文件正在使用中,无法被替换(可能被防病毒软件替换),或者它已被设置为只读。
如果权限有问题,解决方法是获取足够的目录权限,或者将项目的输出路径更改为您有足够权限的目录。这通常在主菜单的 Project-〉Options 中完成。
如果是由于防病毒软件或其他正在使用可执行文件的进程导致的,请禁用防病毒软件或提供例外规则以阻止扫描该文件夹。
如果问题是由于文件为只读而导致的,请更改文件属性以删除该属性。
92vpleto2#
也可能是因为程序的可执行文件已经在运行,比如在一个隐藏的外部终端中。编译器不会试图覆盖一个打开的.exe文件。问我是怎么知道的。:)