[Lazarus] Strange problem compiling IDE
Mattias Gaertner
nc-gaertnma at netcologne.de
Sun Mar 26 23:57:21 CEST 2017
On Sun, 26 Mar 2017 22:11:11 +0100
C Western via Lazarus <lazarus at lists.lazarus-ide.org> wrote:
>[...]
> Warning: Recompiling Expr, checksum changed for spe {impl}
> Expr.pas(78,12) Fatal: Can't find unit Expr used by FormGrid
>
> It was triggered by adding spe from numlib in the fpc rtl to one of the
> units in a component that is in a package I added to the IDE (FormGrid).
> My application using the same set of component components compiles fine.
> If I remove the dependence on spe the IDE compiles fine. With spe in,
> both the Expr.pas and FormGrid.pas are compiled fine as part of the
> build process when the packages they are associated with are compiled.
>
> Running the IDE compilation with -vt to try and diagnose the problem is
> not that helpful because of the volume of output, but I can see that
> spu.ppu is only looked for in a few places, not the standard place for
> all the fpc packages (which certainly do feature in many other searches.)
>
> Any hints as to how to diagnose this? Why is it trying to re-compile
> stuff that has already been compiled earlier in the build process for
> the IDE?
The first thing is indeed to check with -vt that the right files are
used. For example check for unit and include files with same names.
Second: To avoid the duplicate-include-file problem the fpc units must
be compiled with -Ur. Did you compile fpc on your own?
You could try adding -Ur to the Lazarus package. If this fixes your
problem you definitely have somewhere a duplicate include file.
And last you may found have a compiler bug, triggered by uses cycles
between units. This can often be remedied by compiling a package twice.
Mattias
More information about the Lazarus
mailing list