Connecting Tech Pros Worldwide Help | Site Map

Mangled static library entry points

Greg Fuller
Guest
 
Posts: n/a
#1: Sep 2 '08
I'm trying to port a library originally written for unix to Windows.
After a bit of work I've finally gotten it to compile and create the
..lib

For the purposes of example, let's say the .lib contains the functions
"foo", "fooey" and "foolish". When I create a test program and try
linking it to the .lib, I get:

error LNK2001: unresolved external symbol _foo testlib.obj
error LNK2001: unresolved external symbol _fooey testlib.obj
error LNK2001: unresolved external symbol _foolish testlib.obj
etc...

Why is it putting an underscore in front of all the function names?

Thanks!
-Greg
Pavel Minaev
Guest
 
Posts: n/a
#2: Sep 2 '08

re: Mangled static library entry points


"Greg Fuller" <noemail@forspambots.comwrote in message
news:655qb4l0n48f28ud996m10h5me8hucfkp7@4ax.com...
Quote:
I'm trying to port a library originally written for unix to Windows.
After a bit of work I've finally gotten it to compile and create the
.lib
>
For the purposes of example, let's say the .lib contains the functions
"foo", "fooey" and "foolish". When I create a test program and try
linking it to the .lib, I get:
>
error LNK2001: unresolved external symbol _foo testlib.obj
error LNK2001: unresolved external symbol _fooey testlib.obj
error LNK2001: unresolved external symbol _foolish testlib.obj
etc...
>
Why is it putting an underscore in front of all the function names?
It's the standard mangling convention for "cdecl" (i.e. default calling
convention) functions, both on Unix and on Windows.


Closed Thread