If I remove the library altogether, I get a different error message, as expected, indicating that the library Imath cannot be found, this error message is not present when the library exists. This suggests that the library is being found, but the symbols cannot be resolved in the library.

As I indicated in the initial message, the 'nm' call reports...

00000000 I _imp___ZN5Imath5succdEd
00000000 T Imath::succd(double)

...suggesting that the symbol is there, but for some reason the linker cannot resolve the symbol at link time.

As for the suggestion that there may be a calling convention mismatch, I'm not sure how to identify if that is the case. The only thing I can say is that the libraries are both part of the same 'package' from the same people, so it is unlikely that the calling conventions are different, and both sides (IlmBase and OpenEXR) are built with auto*.


Paul Gregory

On 1/29/07, Keith MARSHALL <keith.marshall@total.com> wrote:
Paul Gregory wrote:
> The link phase isn't complaining at all about not finding the libraries,
> but rather not finding the specific symbols. This is what is confusing
> as the 'nm' call suggests that the symbols are actually there in the
> Imath library.

I got the impression that the failure lay in configure not resolving
the symbols, in some library check; that's typically because the compiler
invocation in the configure test doesn't have the correct path for the
library, or the test symbol is actually declared as `__stdcall', where
the test requires a `__cdecl' symbol.


Paul Gregory
ICQ: 156088409