[fpc-pascal] Re: Problems linking C library on Linux (*.so & *.a files)

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Feb 13 12:39:00 CET 2009


On 12 Feb 2009, at 20:42, Guillermo Martínez Jiménez wrote:

>> Link time error, I guess. But according to your original message,  
>> the name
>> of the library is liballeg_unshareable.a. So you would have to use -k
>> liballeg_unshareable.a, not "-klalleg_unshareable.a". The linker only
>> prepends "lib" if you use "-k-lalleg_unshareable.a" (note the extra  
>> "-").
>> And if you use it with {$l } in the source, you also need the full  
>> exact
>> name: {$l liballeg_unshareable.a} (because you are linking like a  
>> regular
>> object file in that case, not as a library).
>>
>
> I've used this command line:
>
> fpc test.pp -Fu../lib/ -k/usr/local/lib/liballeg_unsharable.a
>
> Not link time error but run time error. Tried also {$l
> liballeg_unsharable.a} at sources and the same: not link time error
> but run time error.

Maybe the problem is that the default FPC config file enables symbol  
stripping. So even though the routines from the library are in your  
program, dynamically loaded libraries won't be able to find them since  
the symbol names are gone. Try compiling the program with -Xs- to  
disable symbol stripping.


Jonas


More information about the fpc-pascal mailing list