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