[fpc-pascal] Linking object file

Darius Blaszyk dhkblaszyk at zeelandnet.nl
Thu Mar 20 00:19:32 CET 2014


 

Hi md, 

Linking with C files works just fine. No problem with that. However I
would like to link regular FPC object files instead. Please see the
three files I attached in my first email. For some reason the linker
could not find the implemented procedure. So the question is, how to
modify the implementation unit so everything works. 

Regards, Darius 

md at rpzdesign.com schreef op 20 mrt '14: 

> Darius:
> 
> I just went through this and it is fresh in my mind, but with 32 bit code.
> 
> I used CodeBlocks with MingGW to compile the c source code to a static library with an mylib.A suffix.
> 
> I am pretty sure you cannot use MSVC to compile the c code.
> 
> Then use the {$LINKLIB path/mylib.a} directive to link.
> 
> You do not need to use individual object files since many times there are many that are combined into a single static library.
> 
> When you use codeblocks, you will need to make an adjustment to produce 64 bit binary.
> 
> It is just easier to stay with 32 bit if you can.
> 
> Let us know how it turns out in 64 bit {$LINKLIB xxxx}
> 
> Cheers,
> 
> md
> 
> On 3/19/2014 6:49 PM, Darius Blaszyk wrote: 
> 
>> Hi, 
>> 
>> I was wondering if it's possible to link FPC object files by using the $Link directive? At least I have troubles in getting this to work and therefore I'm asking here. Please consider the minimal example I have attached to this email. 
>> 
>> When linking the object file that implements the test_proc procedure I get the following compiler output: 
>> 
>> Hint: Start of reading config file C:lazarusfpc2.6.2binx86_64-win64fpc.cfg
>> Hint: End of reading config file C:lazarusfpc2.6.2binx86_64-win64fpc.cfg
>> Free Pascal Compiler version 2.6.2 [2014/02/28] for x86_64
>> Copyright (c) 1993-2012 by Florian Klaempfl and others
>> Target OS: Win64 for x64
>> Compiling test.pp
>> Linking test.exe
>> test.pp(8,1) Error: Undefined symbol: TEST_INT_TEST_PROC
>> test.pp(8,1) Fatal: There were 1 errors compiling module, stopping 
>> 
>> What is needed in the test_impl.pas file so the linker can find the implemented function? Do I need to create a library and export the function perhaps? 
>> 
>> Regards, Darius Blaszyk 
>> 
>> _______________________________________________
>> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal [1]
> 
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal [1]
 

Links:
------
[1] http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20140320/106b20ae/attachment.html>


More information about the fpc-pascal mailing list