<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:12pt;font-family:Bitstream Vera Sans">
<p>Hello,</p>
<p></p>
<p>After installing the new release of <span style="font-weight:600">wxWidgets </span>(2.5.4) on my Linux Slackware 10.1, I got exactly the problem described in this post (&quot;windows.h : Not such file or directory&quot;):</p>
<p></p>
<p>http://www.email-lists.org/pipermail/ptx/2005-February/003160.html</p>
<p></p>
<p>It turns out that the <span style="font-weight:600">platform.h</span> file included in <span style="font-weight:600">wxWidgets</span> defines <span style="font-weight:600">__INTEL__</span> symbol when either i386, __i386 or __i386__ is defined:</p>
<p></p>
<p>/*</p>
<p>   Hardware platform detection.</p>
<p></p>
<p>   VC++ defines _M_xxx symbols.</p>
<p> */</p>
<p>#if defined(_M_IX86) || defined(i386) || defined(__i386) || defined(__i386__)</p>
<p>    #ifndef __INTEL__</p>
<p>        #define __INTEL__</p>
<p>    #endif</p>
<p>#endif /* x86 */</p>
<p></p>
<p>This didn't exist in the previous 2.5.3 version.</p>
<p></p>
<p>But the <span style="font-weight:600">panotools.h</span> file from <span style="font-weight:600">libpano12 </span>(2.7.0.8 and also the CVS) defines the symbol <span style="font-weight:600">__Win__</span> when <span style="font-weight:600">__INTEL_</span>_ is defined :</p>
<p></p>
<p>// Create a definition if we're on a Windows machine:</p>
<p>#ifndef __Win__</p>
<p>        #if (defined(MSDOS) || defined(WIN32) || defined(__INTEL__))</p>
<p>                #define __Win__                        1</p>
<p>        #endif</p>
<p>#endif</p>
<p></p>
<p>and later includes<span style="font-weight:600"> windows.h</span> when <span style="font-weight:600">__Win__</span> is defined :</p>
<p></p>
<p>#ifdef __Mac__</p>
<p>...</p>
<p>#else // __Mac__, use ANSI-filefunctions</p>
<p></p>
<p>        #ifdef __Win__</p>
<p>                #ifndef __NO_SYSTEM__</p>
<p>                        #include &lt;windows.h&gt; // including this causes problems with libjpeg</p>
<p>                #endif</p>
<p>        ...</p>
<p>        #else</p>
<p>                #define MAX_PATH_LENGTH                512</p>
<p>        #endif</p>
<p>...</p>
<p>#endif</p>
<p></p>
<p></p>
<p>Finally, the result is that ImageCache.cpp from <span style="font-weight:600">Hugin</span> tries to include <span style="font-weight:600">windows.h</span> in PanoramaToolInterface.h:</p>
<p></p>
<p>extern &quot;C&quot; {</p>
<p>    #include &lt;pano12/panorama.h&gt;</p>
<p>    #include &lt;pano12/filter.h&gt;</p>
<p>}</p>
<p></p>
<p>Here is my quick and dirty <span style="font-weight:600">fix</span> :</p>
<p></p>
<p>extern &quot;C&quot; {</p>
<p>#ifdef __INTEL__</p>
<p>    #define __INTELMEMO__</p>
<p>    #undef __INTEL__</p>
<p>#endif</p>
<p>    #include &lt;pano12/panorama.h&gt;</p>
<p>#ifdef __INTELMEMO__</p>
<p>    #define __INTEL__</p>
<p>#endif</p>
<p>    #include &lt;pano12/filter.h&gt;</p>
<p>}</p>
<p></p>
<p>A better fix is needed. Obviously, libpano12 shouldn't define __Win__ when __INTEL__ is defined.</p>
<p></p>
<p>Thank you for your attention !</p>
<p></p>
<p>Franck Barbenoire</p>
<p>-- </p>
<p>---</p>
<p>Ma clé publique PGP : 0xD73F161C</p>
</body></html>