[fpc-pascal] Undefined symbols. Help!

Anthony Walter sysrpl at gmail.com
Sun May 26 09:35:56 CEST 2013


Can someone point me in the right direction towards solving this problem?

I built a static libraries on Linux based on some open source c and h
files. I can compile things fine with gcc/mingw-265 and use ar to turn the
object files into a static lib (libtess.a). The problem is when I try to
compile on Windows with the static lib I get the linking errors below when
I try to compile and exe which uses the functions I'm importing:

Error: Undefined symbol: _malloc
Error: Undefined symbol: _free
Error: Undefined symbol: __assert
Error: Undefined symbol: __setjmp3
Error: Undefined symbol: _longjmp
Error: Undefined symbol: _realloc
Fatal: There were 6 errors compiling module, stopping

In one of my packages I am doing this:

{$linklib tess} // libtess.a compiled using i686-mingw-w64-gcc on Linux


On Linux I ran an nm command in the mingw-w64 folder and found those
functions in libmsvcrt.a and libmsvcr100.a ... so I copied those files to
my windows box and tried linking with each one (separately {$linklib
msvcrt} for example) as well, but I still get the same linking errors. I
also tried linking in ...

{$linklib user32}
{$linklib kernel32}
{$linklib msvcr100}
{$linklib mingw32}
{$linklib tess}

I'd really appreciate it if anyone could help me better understand how to
work with static libraries compiled on Linux and linked on Windows.

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20130526/d75b0362/attachment.html>


More information about the fpc-pascal mailing list