Re: [Openexr-devel] Ilmbase 1.0.1 and OpenEXR 1.6.1 under Windows x64

Bo Schwarzstein <[email protected]> Fri, 3 Jul 2009 11:06:49 +0800
Newsgroups gmane.comp.video.openexr.user,gmane.comp.video.openexr.devel
Message-ID <[email protected]>
--===============1254895078==
Content-Type: multipart/alternative; boundary=0016364585c88d2343046dc4721e

--0016364585c88d2343046dc4721e
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hello Rodrigo,

The almost proper operation steps are like this,


   1. Make a work directory in one of your disk ( my is F:\Workshop )
   2. Uncompress the *ilmbase-1.0.1.tar.gz* and *openexr-1.6.1.tar.gz* under
   the work directory (just like F:\Workshop\ilmbase-1.0.1\config and others
   stuff )
   3. Open the Visual Studio solution file according your IDE (my is VC8),
   change the target to *Release* (I like RELEASE version)
   4. Launch the *Command Prompt* in VS
   5. Get into the *F:\Workshop\ilmbase-1.0.1\Half*, input *cl eLut.cpp* and
   *cl toFloat.cpp* to compile the LUTs
   6. Type *eLut > eLut.h* and *toFloat > toFloat.h* to generate the lut
   files
   7. Compile the *Half* project in VS, it should be okay.
   8. You will find it create a directory names *F:\Deploy*, and it copied
   the *lib, include, bin* files in each directory.
   9. Go to *http://www.zlib.net/*, download the *DLL version*, copy the *
   zdll.lib* to the *F:\Deploy\lib\Release\*
   10. Open the *OpenEXR*'s VC8 project, try to compile, there should be no
   problem.

Please have a try, I tried for several times and been successful to compile
the libraries. I wish OpenEXR could use the CMake in further version.

Thanks.

2009/7/3 Rodrigo Urra <[email protected]>

> Hi Bo, and thanks for the reply.
>
> Could you elaborate a little further please? I'm not 100% familiar with
> Visual Studio's project build settings / macros.
>
> Thanks again,
> - Rodrigo
>
> On Tue, Jun 30, 2009 at 11:48 PM, Bo Schwarzstein <
> [email protected]> wrote:
>
>> Hi,
>>
>> In fact, it's still very painful to compile OpenEXR under Visual Studio.
>> According your error information, it seems that the half in ILMBase did not
>> export the entry correctly, you could manual setup the macros in order to
>> generate the proper library files.
>>
>> Thanks.
>>
>> 2009/7/1 Rodrigo Urra <[email protected]>
>>
>>>  Hello,
>>>
>>> The demand for building programs under 64-bit configuration is growing,
>>> which is what brings me here :)
>>>
>>> I'm having issues compiling Ilmbase 1.0.1 and OpenEXR 1.6.1 under Visual
>>> Studio 2008, using a x64 platform configuration, and was hoping to get some
>>> help. If for instance, one takes the original distribution, adds an x64
>>> configuration and tries to Build Ilmbase, the linker errors are numerous.
>>> See below.
>>>
>>> Could someone please explain how to successfully build, or at least point
>>> to OpenEXR 1.6.1 pre-built x64 libs and dlls?
>>>
>>> Thank you!
>>>
>>> Error    2    error LNK2001: unresolved external symbol "class
>>> std::basic_ostream<char,struct std::char_traits<char> > & __cdecl
>>> operator<<(class std::basic_ostream<char,struct std::char_traits<char> >
>>> &,class half)" (??6@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@
>>> @AEAV01@Vhalf@@@Z)    testClassification.obj
>>> Error    3    error LNK2001: unresolved external symbol "class
>>> std::basic_ostream<char,struct std::char_traits<char> > & __cdecl
>>> operator<<(class std::basic_ostream<char,struct std::char_traits<char> >
>>> &,class half)" (??6@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@
>>> @AEAV01@Vhalf@@@Z)    testError.obj
>>> Error    4    error LNK2001: unresolved external symbol "private: static
>>> short __cdecl half::convert(int)" (?convert@half@@CAFH@Z)
>>> testFunction.obj
>>> Error    5    error LNK2001: unresolved external symbol "private: static
>>> short __cdecl half::convert(int)" (?convert@half@@CAFH@Z)
>>> testLimits.obj
>>> Error    7    error LNK2001: unresolved external symbol "private: static
>>> short __cdecl half::convert(int)" (?convert@half@@CAFH@Z)
>>> testBitPatterns.obj
>>> Error    8    error LNK2001: unresolved external symbol "private: static
>>> short __cdecl half::convert(int)" (?convert@half@@CAFH@Z)
>>> testClassification.obj
>>> Error    9    error LNK2001: unresolved external symbol "private: static
>>> short __cdecl half::convert(int)" (?convert@half@@CAFH@Z)
>>> testError.obj
>>> Error    13    error LNK2001: unresolved external symbol "void __cdecl
>>> printBits(class std::basic_ostream<char,struct std::char_traits<char> >
>>> &,class half)" (?printBits@@YAXAEAV?$basic_ostream@DU?$char_traits@D
>>> @std@@@std@@Vhalf@@@Z)    testClassification.obj
>>> Error    14    error LNK2001: unresolved external symbol "void __cdecl
>>> printBits(class std::basic_ostream<char,struct std::char_traits<char> >
>>> &,class half)" (?printBits@@YAXAEAV?$basic_ostream@DU?$char_traits@D
>>> @std@@@std@@Vhalf@@@Z)    testError.obj
>>> Error    1    error LNK2019: unresolved external symbol "class
>>> std::basic_ostream<char,struct std::char_traits<char> > & __cdecl
>>> operator<<(class std::basic_ostream<char,struct std::char_traits<char> >
>>> &,class half)" (??6@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@
>>> @AEAV01@Vhalf@@@Z) referenced in function "void __cdecl
>>> testArithmetic(void)" (?testArithmetic@@YAXXZ)    testArithmetic.obj
>>> Error    6    error LNK2019: unresolved external symbol "private: static
>>> short __cdecl half::convert(int)" (?convert@half@@CAFH@Z) referenced in
>>> function "public: __cdecl half::half(float)" (??0half@@QEAA@M@Z)
>>> testArithmetic.obj
>>> Error    11    error LNK2019: unresolved external symbol "void __cdecl
>>> printBits(char * const,class half)" (?printBits@@YAXQEADVhalf@@@Z)
>>> referenced in function "void __cdecl `anonymous
>>> namespace'::testBits(float,char const * const,char const * const)"
>>> (?testBits@?A0x5c734a8f@@YAXMQEBD0@Z)    testBitPatterns.obj
>>> Error    10    error LNK2019: unresolved external symbol "void __cdecl
>>> printBits(char * const,float)" (?printBits@@YAXQEADM@Z) referenced in
>>> function "void __cdecl `anonymous namespace'::testBits(float,char const *
>>> const,char const * const)" (?testBits@?A0x5c734a8f@@YAXMQEBD0@Z)
>>> testBitPatterns.obj
>>> Error    12    error LNK2019: unresolved external symbol "void __cdecl
>>> printBits(class std::basic_ostream<char,struct std::char_traits<char> >
>>> &,class half)" (?printBits@@YAXAEAV?$basic_ostream@DU?$char_traits@D
>>> @std@@@std@@Vhalf@@@Z) referenced in function "void __cdecl `anonymous
>>> namespace'::testBits(float,char const * const,char const * const)"
>>> (?testBits@?A0x5c734a8f@@YAXMQEBD0@Z)    testBitPatterns.obj
>>> Error    15    error LNK2019: unresolved external symbol "void __cdecl
>>> printBits(class std::basic_ostream<char,struct std::char_traits<char> >
>>> &,float)" (?printBits@@YAXAEAV?$basic_ostream@DU?$char_traits@D@std@
>>> @@std@@M@Z) referenced in function "void __cdecl `anonymous
>>> namespace'::testBits(float,char const * const,char const * const)"
>>> (?testBits@?A0x5c734a8f@@YAXMQEBD0@Z)    testBitPatterns.obj
>>> Error    16    fatal error LNK1120: 6 unresolved externals
>>> x64\Release/HalfTest.exe
>>>
>>>
>>> _______________________________________________
>>> Openexr-devel mailing list
>>> [email protected]
>>> http://lists.nongnu.org/mailman/listinfo/openexr-devel
>>>
>>>
>>
>

--0016364585c88d2343046dc4721e
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hello Rodrigo,<br><br>The almost proper operation steps are like this,<br><=
br><ol><li>Make a work directory in one of your disk ( my is F:\Workshop )<=
/li><li>Uncompress the <b>ilmbase-1.0.1.tar.gz</b> and <b>openexr-1.6.1.tar=
.gz</b> under the work directory (just like F:\Workshop\ilmbase-1.0.1\confi=
g and others stuff )</li>
<li>Open the Visual Studio solution file according your IDE (my is VC8), ch=
ange the target to <b>Release</b> (I like RELEASE version)</li><li>Launch t=
he <b>Command Prompt</b> in VS</li><li>Get into the <b>F:\Workshop\ilmbase-=
1.0.1\Half</b>, input <b>cl eLut.cpp</b> and <b>cl toFloat.cpp</b> to compi=
le the LUTs</li>
<li>Type <b>eLut &gt; eLut.h</b> and <b>toFloat &gt; toFloat.h</b> to gener=
ate the lut files</li><li>Compile the <b>Half</b> project in VS, it should =
be okay.</li><li>You will find it create a directory names <b>F:\Deploy</b>=
, and it copied the <b>lib, include, bin</b> files in each directory.</li>
<li>Go to <b><a href=3D"http://www.zlib.net/">http://www.zlib.net/</a></b>,=
 download the <b>DLL version</b>, copy the <b>zdll.lib</b> to the <b>F:\Dep=
loy\lib\Release\</b></li><li>Open the <b>OpenEXR</b>&#39;s VC8 project, try=
 to compile, there should be no problem.</li>
</ol>Please have a try, I tried for several times and been successful to co=
mpile the libraries. I wish OpenEXR could use the CMake in further version.=
<br><br>Thanks.<br><br><div class=3D"gmail_quote">2009/7/3 Rodrigo Urra <sp=
an dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]">[email protected]</=
a>&gt;</span><br>
<blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, =
204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Bo, and thanks=
 for the reply.<br><br>Could you elaborate a little further please? I&#39;m=
 not 100% familiar with Visual Studio&#39;s project build settings / macros=
.<br>
<br>Thanks again,<br>- Rodrigo<br><br><div class=3D"gmail_quote">
On Tue, Jun 30, 2009 at 11:48 PM, Bo Schwarzstein <span dir=3D"ltr">&lt;<a =
href=3D"mailto:[email protected]" target=3D"_blank">bo.schwarzstein=
@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; p=
adding-left: 1ex;">

Hi,<br><br>In fact, it&#39;s still very painful to compile OpenEXR under Vi=
sual Studio. According your error information, it seems that the half in IL=
MBase did not export the entry correctly, you could manual setup the macros=
 in order to generate the proper library files.<br>


<br>Thanks.<br><br><div class=3D"gmail_quote">2009/7/1 Rodrigo Urra <span d=
ir=3D"ltr">&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">korax=
[email protected]</a>&gt;</span><br><blockquote class=3D"gmail_quote" style=3D"b=
order-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; paddin=
g-left: 1ex;">

<div><div></div><div>
Hello,<br><br>The demand for building programs under 64-bit configuration i=
s growing, which is what brings me here :)<br><br>I&#39;m having issues com=
piling Ilmbase 1.0.1 and OpenEXR 1.6.1 under Visual Studio 2008, using a x6=
4 platform configuration, and was hoping to get some help. If for instance,=
 one takes the original distribution, adds an x64 configuration and tries t=
o Build Ilmbase, the linker errors are numerous. See below. <br>



<br>Could someone please explain how to successfully build, or at least poi=
nt to OpenEXR 1.6.1 pre-built x64 libs and dlls?<br><br>Thank you!<br><br>E=
rror=C2=A0=C2=A0=C2=A0 2=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved extern=
al symbol &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt=
;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;c=
har,struct std::char_traits&lt;char&gt; &gt; &amp;,class half)&quot; (??6@Y=
AAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AEAV01@Vhalf@@@Z)=C2=A0=
=C2=A0=C2=A0 testClassification.obj<br>



Error=C2=A0=C2=A0=C2=A0 3=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved exter=
nal symbol &quot;class std::basic_ostream&lt;char,struct std::char_traits&l=
t;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;=
char,struct std::char_traits&lt;char&gt; &gt; &amp;,class half)&quot; (??6@=
YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AEAV01@Vhalf@@@Z)=C2=A0=
=C2=A0=C2=A0 testError.obj<br>



Error=C2=A0=C2=A0=C2=A0 4=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved exter=
nal symbol &quot;private: static short __cdecl half::convert(int)&quot; (?c=
onvert@half@@CAFH@Z)=C2=A0=C2=A0=C2=A0 testFunction.obj<br>Error=C2=A0=C2=
=A0=C2=A0 5=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved external symbol &qu=
ot;private: static short __cdecl half::convert(int)&quot; (?convert@half@@C=
AFH@Z)=C2=A0=C2=A0=C2=A0 testLimits.obj<br>



Error=C2=A0=C2=A0=C2=A0 7=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved exter=
nal symbol &quot;private: static short __cdecl half::convert(int)&quot; (?c=
onvert@half@@CAFH@Z)=C2=A0=C2=A0=C2=A0 testBitPatterns.obj<br>Error=C2=A0=
=C2=A0=C2=A0 8=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved external symbol =
&quot;private: static short __cdecl half::convert(int)&quot; (?convert@half=
@@CAFH@Z)=C2=A0=C2=A0=C2=A0 testClassification.obj<br>



Error=C2=A0=C2=A0=C2=A0 9=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved exter=
nal symbol &quot;private: static short __cdecl half::convert(int)&quot; (?c=
onvert@half@@CAFH@Z)=C2=A0=C2=A0=C2=A0 testError.obj<br>Error=C2=A0=C2=A0=
=C2=A0 13=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved external symbol &quot=
;void __cdecl printBits(class std::basic_ostream&lt;char,struct std::char_t=
raits&lt;char&gt; &gt; &amp;,class half)&quot; (?printBits@@YAXAEAV?$basic_=
ostream@DU?$char_traits@D@std@@@std@@Vhalf@@@Z)=C2=A0=C2=A0=C2=A0 testClass=
ification.obj<br>



Error=C2=A0=C2=A0=C2=A0 14=C2=A0=C2=A0=C2=A0 error LNK2001: unresolved exte=
rnal symbol &quot;void __cdecl printBits(class std::basic_ostream&lt;char,s=
truct std::char_traits&lt;char&gt; &gt; &amp;,class half)&quot; (?printBits=
@@YAXAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@Vhalf@@@Z)=C2=A0=C2=
=A0=C2=A0 testError.obj<br>



Error=C2=A0=C2=A0=C2=A0 1=C2=A0=C2=A0=C2=A0 error LNK2019: unresolved exter=
nal symbol &quot;class std::basic_ostream&lt;char,struct std::char_traits&l=
t;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;=
char,struct std::char_traits&lt;char&gt; &gt; &amp;,class half)&quot; (??6@=
YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AEAV01@Vhalf@@@Z) refere=
nced in function &quot;void __cdecl testArithmetic(void)&quot; (?testArithm=
etic@@YAXXZ)=C2=A0=C2=A0=C2=A0 testArithmetic.obj<br>



Error=C2=A0=C2=A0=C2=A0 6=C2=A0=C2=A0=C2=A0 error LNK2019: unresolved exter=
nal symbol &quot;private: static short __cdecl half::convert(int)&quot; (?c=
onvert@half@@CAFH@Z) referenced in function &quot;public: __cdecl half::hal=
f(float)&quot; (??0half@@QEAA@M@Z)=C2=A0=C2=A0=C2=A0 testArithmetic.obj<br>



Error=C2=A0=C2=A0=C2=A0 11=C2=A0=C2=A0=C2=A0 error LNK2019: unresolved exte=
rnal symbol &quot;void __cdecl printBits(char * const,class half)&quot; (?p=
rintBits@@YAXQEADVhalf@@@Z) referenced in function &quot;void __cdecl `anon=
ymous namespace&#39;::testBits(float,char const * const,char const * const)=
&quot; (?testBits@?A0x5c734a8f@@YAXMQEBD0@Z)=C2=A0=C2=A0=C2=A0 testBitPatte=
rns.obj<br>



Error=C2=A0=C2=A0=C2=A0 10=C2=A0=C2=A0=C2=A0 error LNK2019: unresolved exte=
rnal symbol &quot;void __cdecl printBits(char * const,float)&quot; (?printB=
its@@YAXQEADM@Z) referenced in function &quot;void __cdecl `anonymous names=
pace&#39;::testBits(float,char const * const,char const * const)&quot; (?te=
stBits@?A0x5c734a8f@@YAXMQEBD0@Z)=C2=A0=C2=A0=C2=A0 testBitPatterns.obj<br>



Error=C2=A0=C2=A0=C2=A0 12=C2=A0=C2=A0=C2=A0 error LNK2019: unresolved exte=
rnal symbol &quot;void __cdecl printBits(class std::basic_ostream&lt;char,s=
truct std::char_traits&lt;char&gt; &gt; &amp;,class half)&quot; (?printBits=
@@YAXAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@Vhalf@@@Z) referenced=
 in function &quot;void __cdecl `anonymous namespace&#39;::testBits(float,c=
har const * const,char const * const)&quot; (?testBits@?A0x5c734a8f@@YAXMQE=
BD0@Z)=C2=A0=C2=A0=C2=A0 testBitPatterns.obj<br>



Error=C2=A0=C2=A0=C2=A0 15=C2=A0=C2=A0=C2=A0 error LNK2019: unresolved exte=
rnal symbol &quot;void __cdecl printBits(class std::basic_ostream&lt;char,s=
truct std::char_traits&lt;char&gt; &gt; &amp;,float)&quot; (?printBits@@YAX=
AEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@M@Z) referenced in functio=
n &quot;void __cdecl `anonymous namespace&#39;::testBits(float,char const *=
 const,char const * const)&quot; (?testBits@?A0x5c734a8f@@YAXMQEBD0@Z)=C2=
=A0=C2=A0=C2=A0 testBitPatterns.obj<br>



Error=C2=A0=C2=A0=C2=A0 16=C2=A0=C2=A0=C2=A0 fatal error LNK1120: 6 unresol=
ved externals=C2=A0=C2=A0=C2=A0 x64\Release/HalfTest.exe<br><br>
<br></div></div>_______________________________________________<br>
Openexr-devel mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">Openexr-devel=
@nongnu.org</a><br>
<a href=3D"http://lists.nongnu.org/mailman/listinfo/openexr-devel" target=
=3D"_blank">http://lists.nongnu.org/mailman/listinfo/openexr-devel</a><br>
<br></blockquote></div><br>
</blockquote></div><br>
</blockquote></div><br>

--0016364585c88d2343046dc4721e--



--===============1254895078==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Openexr-user mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/openexr-user

--===============1254895078==--