<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body>
<p>Hi md,</p>
<p>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.</p>
<p>Regards, Darius</p>
<p> </p>
<div> </div>
<p>md@rpzdesign.com schreef op 20 mrt '14:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->Darius:<br /><br /> I just went through this and it is fresh in my mind, but with 32 bit code.<br /><br /> I used CodeBlocks with MingGW to compile the c source code to a static library with an mylib.A suffix.<br /><br /> I am pretty sure you cannot use MSVC to compile the c code.<br /><br /> Then use the {$LINKLIB path/mylib.a} directive to link.<br /><br /> You do not need to use individual object files since many times there are many that are combined into a single static library.<br /><br /> When you use codeblocks, you will need to make an adjustment to produce 64 bit binary.<br /><br /> It is just easier to stay with 32 bit if you can.<br /><br /> Let us know how it turns out in 64 bit {$LINKLIB xxxx}<br /><br /> Cheers,<br /><br /> md<br /><br /><br />
<div class="moz-cite-prefix">On 3/19/2014 6:49 PM, Darius Blaszyk wrote:</div>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px">
<p>Hi,</p>
<p>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.</p>
<p>When linking the object file that implements the test_proc procedure I get the following compiler output:</p>
<p>Hint: Start of reading config file C:\lazarus\fpc\2.6.2\bin\x86_64-win64\fpc.cfg<br /> Hint: End of reading config file C:\lazarus\fpc\2.6.2\bin\x86_64-win64\fpc.cfg<br /> Free Pascal Compiler version 2.6.2 [2014/02/28] for x86_64<br /> Copyright (c) 1993-2012 by Florian Klaempfl and others<br /> Target OS: Win64 for x64<br /> Compiling test.pp<br /> Linking test.exe<br /> test.pp(8,1) Error: Undefined symbol: TEST_INT_TEST_PROC<br /> test.pp(8,1) Fatal: There were 1 errors compiling module, stopping</p>
<p>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?</p>
<p>Regards, Darius Blaszyk</p>
<br /><fieldset class="mimeAttachmentHeader"></fieldset><br />
<pre>_______________________________________________
fpc-pascal maillist  -  <a class="moz-txt-link-abbreviated" href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal</a></pre>
</blockquote>
<br /><!-- html ignored --><br />
<pre>_______________________________________________
fpc-pascal maillist  -  <a href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>
<a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal</a>
</pre>
</blockquote>
</body></html>