[fpc-pascal] FPC linker oddity

Jonas Maebe jonas.maebe at elis.ugent.be
Sun Jun 21 22:08:27 CEST 2015


On 21/06/15 21:43, patspiper wrote:
> program Project1;
> {$Linklib kernel32}
>   Function GetTickCount: DWORD; external;
> begin
>   WriteLn ('GetTickCount ', GetTickCount);
> end.
> project1.lpr(10,1) Error: Undefined symbol:
> P$PROJECT1_$$_GETTICKCOUNT$$LONGWORD
> 
> Changing the GetTickCount declaration to any of the following works:
>   Function GetTickCount: DWORD; external name
> '_$dll$kernel32$GetTickCount';
>   Function GetTickCount: DWORD; external 'kernel32';
> 
> Why is the behaviour different between Linux and Windows?

ELF (used by Linux) and PECOFF (used by Windows) use completely
different ways of shared linking.


Jonas



More information about the fpc-pascal mailing list