All the project settings seem to be in
order. Half.dll links fine, but not Iex.dll. It seems like createDLL.cpp is not
mangling the symbols in Iex correctly for 64-bit.
James
From: Nick
Porcino [mailto:NPorcino <at> lucasarts.com]
Sent: Tuesday, November 20, 2007
9:48 PM
To: James
Vanderhyde; openexr-devel <at> nongnu.org
Subject: RE: [Openexr-devel]
Building Visual C++ 2005 for x64 platform
I haven’t tried
this myself, but is it possible that you have a std library mismatch, for
example, something set to Multithreaded DLL, and another set to Multithreaded?
From:
openexr-devel-bounces+nporcino=lucasarts.com <at> nongnu.org
[mailto:openexr-devel-bounces+nporcino=lucasarts.com <at> nongnu.org] On Behalf Of James
Vanderhyde
Sent: Tuesday, November 20, 2007
1:16 PM
To: openexr-devel <at> nongnu.org
Subject: [Openexr-devel] Building
Visual C++ 2005 for x64 platform
I am trying to build a 64-bit dll of
OpenEXR for 64-bit Windows. I’m using Visual Studio 2005 (VC8). I started
by downloading the math library (IlmBase) and trying to build the IlmBase
solution. I created a configuration for the x64 platform. I had to make a few
changes to get the “createDLL” project to compile. I changed the Output
Directory and Intermediate Directory to match what the Win32 configuration had.
Since the project uses a lot of hard-coded relative paths, these needed to be
fixed from Visual Studio’s defaults.
This createDLL program runs the
linker for the rest of the projects, and it has one line of code that controls
the command-line options for the linker. I changed this line to be
“X64” instead of “X86.”
At this point the “Half”
project compiles and links successfully, but when I try to build the
“Iex” project I get several linker errors, such as the following:
Iex.exp : error LNK2001:
unresolved external symbol CTA7?AVErrnoExc <at> Iex <at> <at>
All the .lib, .def, and .obj files
seem to be OK, so I can’t figure out what the problem is.
Does anyone have any tips for me?
Thanks.
James