Hal,
I can't look at the lcms source right at the moment but .def files are no longer recommend to export symbols (on Windows). Instead you add the (microsoft specific) __declspec(dllexport). Its typical to #define this to something like LCMS_EXPORT so that on platforms that don't need this can switch it off. Unfortunately, as I think you may have just found out, if you compile your source with the wrong #define's you can easily end up with undefined symbols at link time - the __declspec() storage attributes affect the symbols name. The other common problem on Windows is in some environments .c files will get compiled as C++, in which case external functions (normal C routines) will get decorated names and again you'll end up getting undefined symbols at link time if that wasn't what you expected. C++ compilers "decorate" function/method names to implement type safe linking, they do this by hashing the parameter types into a string(s) and then combining that string with your function name (sometimes called the mangled name)

Hope that helps,

James.


On Oct 13, 2005, at 7:08 PM, Hal V. Engel wrote:

I am now able to get this to link and run. I had to modify the lcms.def file to export the missing entry points. Not a very clean solution as this means that Windows versions of the profiler will have to be build and packaged with a custom version of the lcms.dll. Perhaps Marti would consider adding these
to the lcms.def file?

Hal



-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to