Thanks Tomas,
I did a quick test and it works perfectly! Regards, Darius Tomas Hajny schreef op 20 mrt '14: > On Wed, March 19, 2014 23:49, 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? > > Basically, you have two options: > > 1) Provide the import declaration with the mangled name (i.e. the name > really stored within the .o file). This may possibly change between > different FPC versions, but if you intend to link to an existing object > file, you would already know which one was used. In your case, this would > mean changing line 7 in test_int.pas to: > > procedure test_proc; external name 'TEST_IMPL_TEST_PROC'; > > (the mangled name may be found either by using -a when compiling > test_impl.pas and looking into the generated test_impl.s or e.g. by using > 'objdump -t test_impl.o'. > > 2) Specify your own name during rather than relying on some mangling rules > - change line 7 in test_impl.pas to: > > procedure test_proc; export alias: 'My_Test_Proc'; > > and then line 7 in test_int.pas needs to change accordingly to: > > procedure test_proc; external name 'My_Test_Proc'; > > Tomas > > _______________________________________________ > fpc-pascal maillist - fpc-pascal@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
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal