<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>/dev/log - Tag libjpeg</title>
	<link>https://benjaminbillet.fr/blog/index.php?tag/libjpeg</link>
	<language>fr</language>
	<description>Blog technique de Benjamin Billet</description>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="https://benjaminbillet.fr/blog/feed.php?rss" />
	<lastBuildDate>Tue, 02 Jun 2015 22:09:00 +0200</lastBuildDate>
	<generator>PluXml</generator>
	<item>
		<title>Résoudre le conflit entre wxMSW (wxWidget) et libjpeg</title> 
		<link>https://benjaminbillet.fr/blog/index.php?article4/resoudre-le-conflit-entre-wxwidget-et-libjpeg</link>
		<guid>https://benjaminbillet.fr/blog/index.php?article4/resoudre-le-conflit-entre-wxwidget-et-libjpeg</guid>
		<description>&lt;p&gt;CImg et wxWidget entrent en conflit car CImg importe les entêtes de libjpeg et wxMSW importe les entêtes de l&#039;API WIN32 qui, toutes deux, définissent le type &lt;em&gt;boolean&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;
/usr/include/jmorecfg.h:234:13: error: conflicting declaration &#039;typedef int boolean&#039;
 typedef int boolean;
             ^
...
/usr/include/w32api/rpcndr.h:65:25: note: previous declaration as &#039;typedef unsigned char boolean&#039;
   typedef unsigned char boolean;
                         ^
&lt;/pre&gt;

&lt;p&gt;libjpeg prévoit cette éventualité et permet d&#039;éviter la déclaration de &lt;em&gt;typedef int boolean&lt;/em&gt; en définissant la constante &lt;em&gt;HAVE_BOOLEAN&lt;/em&gt;. Toutefois, si cette constante est définie, libjpeg ne fonctionne plus correctement, provoquant une erreur dans CImg :&lt;/p&gt;
&lt;pre&gt;
[CImg] *** CImgIOException *** [instance(0,0,0,0,0x0,non-shared)] CImg&lt;unsigned char&gt;::load(): Failed to recognize format of file &#039;images\IMG_6225.jpg&#039;.
&lt;/pre&gt;

&lt;p&gt;Je n&#039;ai, pour le moment, pas trouvé de solution satisfaisante à ce problème, hormis modifier le fichier &lt;em&gt;rpcndr.h&lt;/em&gt; de façon à changer la déclaration du type boolean :&lt;/p&gt;
[C99]
typedef unsigned char boolean;
// devient
typedef int boolean;
[/C99]

&lt;p&gt;Ce changement entraîne un problème dans &lt;em&gt;wtypesbase.h&lt;/em&gt;, qui doit lui aussi être modifié pour commenter la déclaration de &lt;em&gt;BOOLEAN&lt;/em&gt; : &lt;/p&gt;
[C99]
// la ligne doit être commentée
typedef boolean BOOLEAN;
[/C99]

Si vous connaissez quelque chose de mieux, merci de m&#039;envoyer un mail et je l&#039;ajouterais ici.</description>
		<pubDate>Tue, 02 Jun 2015 22:09:00 +0200</pubDate>
		<dc:creator>Benjamin Billet</dc:creator>
	</item>
</channel>
</rss>