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

Bo Schwarzstein <[email protected]> Fri, 3 Jul 2009 11:48:40 +0800
Newsgroups gmane.comp.video.openexr.user
Message-ID <[email protected]>
--===============2025742691==
Content-Type: multipart/alternative; boundary=00163646c77a3693b4046dc50840

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

Sorry, I did not notice these information, and I have another problem

In *createDLL *it write MACHINE:X86, when I modified it to *X64*, the
createDLL seems can't work properly, just only can compile the Half to X64.


   - 1>CreateDLL found 251 symbols
   - 1>Exporting DLL
   - 1>   Creating library ..\Release\Iex.lib and object ..\Release\Iex.exp
   - 1>Iex.exp : error LNK2001: unresolved external symbol
   CTA7?AVErrnoExc@Iex@@
   - 1>Iex.exp : error LNK2001: unresolved external symbol
   CTA8?AVE2bigExc@Iex@@
   - 1>Iex.exp : error LNK2001: unresolved external symbol
   CTA8?AVEaccesExc@Iex@@
   - 1>Iex.exp : error LNK2001: unresolved external symbol
   CTA8?AVEagainExc@Iex@@


So, how should we change the createDLL to destory this kind of error ?

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
>>>
>>>
>>
>

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

Sorry, I did not notice these information, and I have another problem<br><b=
r>In <b>createDLL </b>it write MACHINE:X86, when I modified it to <b>X64</b=
>, the createDLL seems can&#39;t work properly, just only can compile the H=
alf to X64.<br>
<br><ul><li>1&gt;CreateDLL found 251 symbols</li><li>1&gt;Exporting DLL</li=
><li>1&gt;=C2=A0=C2=A0 Creating library ..\Release\Iex.lib and object ..\Re=
lease\Iex.exp</li><li>1&gt;Iex.exp : error LNK2001: unresolved external sym=
bol CTA7?AVErrnoExc@Iex@@</li>
<li>1&gt;Iex.exp : error LNK2001: unresolved external symbol CTA8?AVE2bigEx=
c@Iex@@</li><li>1&gt;Iex.exp : error LNK2001: unresolved external symbol CT=
A8?AVEaccesExc@Iex@@</li><li>1&gt;Iex.exp : error LNK2001: unresolved exter=
nal symbol CTA8?AVEagainExc@Iex@@</li>
</ul><br>So, how should we change the createDLL to destory this kind of err=
or ?<br><br><div class=3D"gmail_quote">2009/7/3 Rodrigo Urra <span dir=3D"l=
tr">&lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt;</spa=
n><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>

--00163646c77a3693b4046dc50840--



--===============2025742691==
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

--===============2025742691==--