Hi,

> That's fine if you're using a C++ compiler to build it as a static 
> library - but on Linux lcms is built (in C mode) as a shared library. 
> To link that with a C++ project, the C++ compiler needs to know that 
> the library functions should be called with C name-mangling and 
> calling conventions.  Without adding the extern "C" { } construct I 
> could compile just fine, but got loads of undefined symbol errors 
> when linking.

I've been evaluating this, and there are some drawbacks. One is you
cannot use namespaces if extern "C" is being used (the behavior is
then undefined and depends on the compiler)
Overall I see more benefits than issues, so that's ok, I will
include the extern "C" on the APIs for the CMM and plug-ins. Maybe
I should enclose it on a conditional #ifdef for the corner cases.

> Speaking of libraries and linking, is there any chance the name of 
> the library itself could be changed to lcms2 (to match the header 
> file) or something similar?

Ops, that was the intent. As you can see I've already done that on
the headers, but missed to change the automake script. Thanks for
reporting.

Best regards
Marti


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to