[fpc-pascal] Lazarus Snapshots Intel Mac with FPC 2.4.1?

Jonas Maebe jonas.maebe at elis.ugent.be
Mon Apr 19 16:41:40 CEST 2010


On 19 Apr 2010, at 16:15, Tobias Giesen wrote:

>> This usually means that they were compiled by a previous compiler, or
>> that they use units which have been changed and recompiled since the
>> previous compilation. In that case, the compiler will ignore the
>> precompiled unit and try to recompile it. If it then doesn't find the
>> sources, you'll get an error about the unit not being found.
>
> Yes but the sources were there. They were in the search path, but the
> compiler didn't search properly. I will look into it again and if  
> there
> are bugs, I will fix them in the FPC sources and submit the fixes.

If you have such problems in the future, compile with -vut and the  
compiler will show where and what it searches, andwhy it refuses  
certain units or recompiles them.

>> (Recompiling XYZ.pas because the checksum changed although it  
>> didn't).
>
> I deleted all .o and .ppu files and still this happened. I'm not  
> mixing
> anything. The problem is that FPC sometimes doesn't like its own  
> units -
> maybe because of different compiler switches?

In some cases, the compiler will want to immediately recompile  
previously compiled units:
a) if you use a unit that has in its interface section a procedure  
that is declared normally, but which is declared as "external".  
Solution: declare it immediately as "external" in the interface and  
remove the version in the implementation
b) if you have inline procedures in the interface of unit1 and a unit  
that uses unit1 is (indirectly) used in the implementation of unit1.  
Solution: compile everything with -Ur (= "create release units"; the  
compiler will never try to recompile such units afterwards, except if  
the interface section of a unit that it uses has been changed and this  
other unit has been recompiled).


Jonas



More information about the fpc-pascal mailing list