delphi 运行旧项目时出错- Lazarus

mccptt67  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(138)

我在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
有人知道解决方法吗?

ee7vknir

ee7vknir1#

错误消息指出无法创建目标文件,这将导致应用程序无法创建。错误代码5表示 * 访问被拒绝 *,这意味着您没有对编译器和链接器试图存储输出的目录的写入权限,或者可执行文件正在使用中,无法被替换(可能被防病毒软件替换),或者它已被设置为只读。
如果权限有问题,解决方法是获取足够的目录权限,或者将项目的输出路径更改为您有足够权限的目录。这通常在主菜单的 Project-〉Options 中完成。
如果是由于防病毒软件或其他正在使用可执行文件的进程导致的,请禁用防病毒软件或提供例外规则以阻止扫描该文件夹。
如果问题是由于文件为只读而导致的,请更改文件属性以删除该属性。

92vpleto

92vpleto2#

也可能是因为程序的可执行文件已经在运行,比如在一个隐藏的外部终端中。编译器不会试图覆盖一个打开的.exe文件。问我是怎么知道的。:)

相关问题