2016-04-03 92 views
0

我在lazarus中使用了对象pascal。当我打开一个旧项目并尝试运行它时;这个代码窗口中源代码编辑器弹出:运行旧项目时出错 - Lazarus

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. 

源窗口的错误此代码窗口弹出,是搭配这些错误:

TimeKeeper.lpr(20,1) Error: Can't create object file: TimeKeeper.exe (error code: 5) TimeKeeper.lpr(20,1) Error: Can't create executable TimeKeeper.exe

有谁知道解决方法是什么呢?

+0

[ERROR_ACCESS_DENIED](https://msdn.microsoft.com/en-gb/library/windows/desktop/ms681382.aspx#ERROR_ACCESS_DENIED)它支付了解一些更常见的Win32错误代码 –

回答

3

错误消息指示无法创建目标文件,这会导致应用程序未被创建。错误代码5意味着访问被拒绝,这意味着您没有对编译器和链接器试图存储输出的目录的写访问权限,或者可执行文件正在使用中且无法替换病毒软件),或者它是只读的。

如果问题出现在权限中,解决办法是获取目录的足够权限或将项目的输出路径更改为您拥有足够权限的目录。这通常在主菜单的Project-> Options中完成。

如果是由于防病毒软件或其他使用可执行文件的进程造成的,请禁用AV软件或提供防止扫描该文件夹的例外规则。

如果问题是由文件为只读引起的,请更改文件属性以删除该属性。

+0

谢谢肯。我读完你​​的答案后。我尝试的第一件事是删除旧的现有EXE文件。这似乎已经解决了该问题,因为该程序现在从IDE运行。 –

+0

@CliffCrerar它也可能是由防病毒软件引起的,例如阻止其他可执行文件创建可执行文件。 – Abelisto