I'm using Microsoft Visual Studio 8.1 (2005) to compile and link a library and my application that uses this library. Linking complains that a symbol can not be found. I looked at the lib file and this is what happens:

dumpReadable@OGRGeometry@@UBEXPAU_iobuf@@PBD@Z - Lib has this
dumpReadable@OGRGeometry@@UAEXPAU_iobuf@@PBD@Z - My application requires this
___________________________^ the difference in one character

The have make file for the library, but I do not know what switch I should change to create proper symbols. Any suggestions?


Its not in the makefile, but a difference in the code. Post the function header in the lib. the prototype in the header file (if you have one), and in the function call in the application program. Could be something as simple as const in one and not in the other.

commented: Very helpful +1

Thanks, Ancient Dragon! I did not think of it. I looked at the header files and it turns out the library was using older header file for compilation, while my application was using newer.
Thanks a lot.