Archives pour juin 2008|Archives mensuelles

Code::Blocks & WxWidgets, le retour…

On a vu que l’installation de Code::Blocks sur un PC sous windows avec la bonne configuration pour pouvoir utiliser WxWidgets n’est pas triviale.

Voici les points testés vendredi et qui ont des résultats mitigés :

  • Installer Code::Blocks, version incluant MinGW, dans un répertoire sans espace, par exemple c:\tools
  • On va avoir : Code::Blocks dans le répertoire C:\tools\CodeBlocks ; MinGW sera dans le répertoire C:\tools\CodeBlocks\MinGW
  • Installer MSYS dans C:\tools également par exemple. En profiter pour installer MSYSDTK (au même endroit), ça peut servir aussi. Spécifier le bon répertoire de MinGW quand il sera demandé.
  • La procédure décrite dans “docs\msw\install.txt” du répertoire WxWidgets ne marche pas :

    cd $WXWIN
    mkdir build-debug
    cd build-debug
    ../configure –with-msw –enable-debug –enable-debug_gdb –disable-shared
    make
    make install

  • La porcédure décrite dans le wiki : Compiling wxWidgets 2.8.6 to develop Code::Blocks ne semble pas non plus fonctionner directement :

    cd $WXWIN
    cd build\msw
    mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
    mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release

    Il est indiqué que ces options de compilation soient les seules supportées par C::B.
    On retrouve des explications similaires ici (sur une autre page du même wiki). Il y est confirmé qu’il ne faut pas trop changer les options de compilation ci-dessus et que les paths avec espaces sont assez malvenus. Il est aussi spécifié que la procédure marche avec WxWidgets-2.8.7, or la version actuelle téléchargeable est la 2.8.8. Serait-ce là que le bas blesse ?

Les tentatives du jour sont les suivantes :

  • Essai en utilisant “configure” :

    cd $WXWIN
    cd build/msw
    ../../configure –with-msw –disable-debug –enable-shared –enable-unicode –enable-monolithic
    make
    make install

    La directive “–enable-release” n’existant pas pour “configure”, on suppose que si on spécifie”–disable-debug”, il va bien faire une version release. Si ça ne marche pas, on pourra toujours essayer avec la version 2.8.7.

  • Bilan : on obtient bien une dll dans le répertoire “lib” : “wxmsw28u_gcc_custom.dll”. Par contre, on est obligé de déplacer le “include” manuellement dans “build/msw” (!), mais de toutes façons, C::B ne reconnait toujours pas la dll. Là je bloque et je ne pense pas que revenir à la version 2.8.7 change grand chose.
  • J’essaie de bouger la dll dans le répertoire $WXWIN/lib. ça ne marche pas mieux. Ni dans ses sous-répertoires d’ailleurs (gcc_dll, … ).
  • Acharnement. J’efface tout WxWidgets et je recommence. Ca tombe bien, ce n’est pas comme si ça mettait beaucoup de temps à compiler… grmpf.
  • Essai avec “configure”, ça ne marche pas. Apparemment Code::Blocks cherche un répertoire “gcc_dll” dans le répertoire “lib”. Il chercherait également un fichier “libwxmsw28u.a” dans “gcc_dll”. Autant dire qu’on n’est pas tiré d’affaire.
  • Réinstallation de WxWidgets et essai avec “mingw32-make”. Quelle déception, ça marche. Fin du jeu. Il met bien les fichiers et répertoires qu’il faut dans le “lib” de $WXWIN et ensuite, ça passe.

Conclusion : Quelle perte de temps !!

  1. Emporté par mon élan, j’en compile même la version “debug” pour être un petit peu plus exhaustif.
  2. Certains vous diront que la dll est tellement grosse que des fois il faudrait presque mieux pour les petits programmes d’utiliser la version statique. A ce stade, je ne sais pas s’il faut conseiller la version non monolithique.

Code::Blocks

La mission du jour : installer Code::Blocks sur un PC sous windows (Win2k pour moi). Le but est d’utiliser WxWidgets.

Voici une procédure simple qui marche qui ne marche pas encore. Les versions concernées sont celles qui sont téléchargeables à la date d’aujourd’hui (27 juin 2008)

  • Installer Code::Blocks, version incluant MinGW, dans un répertoire sans espace, par exemple c:\tools
  • On va avoir : Code::Blocks dans le répertoire C:\tools\CodeBlocks ; MinGW sera dans le répertoire C:\tools\CodeBlocks\MinGW
  • Installer MSYS dans C:\tools également par exemple. En profiter pour installer MSYSDTK (au même endroit), ça peut servir aussi. Spécifier le bon répertoire de MinGW quand il sera demandé.
  • Lancer la procédure décrite dans “docs\msw\install.txt” du répertoire WxWidgets :

    cd $WXWIN
    mkdir build-debug
    cd build-debug
    ../configure –with-msw –enable-debug –enable-debug_gdb –disable-shared
    make
    make install

  • Configurer correctement votre projet WxWidget Code::Blocks (pour les paths). Et ça marche. Pour moi ça ne marche pas. Il doit y avoir un pépin quelque part.
  • 2e essai : on ouvre le wiki de C::B et on tombe sur la page Compiling wxWidgets 2.8.6 to develop Code::Blocks et là tout s’arrange.

    cd $WXWIN
    cd build\msw
    mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
    mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release

    Il semblerait que ces options de compilation soient les seules supportées par C::B

  • Configurer correctement votre projet WxWidget Code::Blocks (pour les paths). Et ça marche. Bullshit. Non, ça ne marche toujours pas. Bon, il doit y avoir une ruse quelque part. Je ne vois pas la grosse dll d’ailleurs…

Petite remarque en passant, je connaissais Cygwin qui est assez efficace comme console type Linux sous Windows, mais finalement, MSYS est très bien aussi et un petit peu plus esthétique. Je ne suis pas sûr qu’elle ait autant de fonctionalités que Cygwin (entre autres concernant X) mais sinon, ça n’a vraiment pas l’air mal.

Introduction…

Je culpabilise déjà. Je suis au boulot et j’écris mon premier billet alors que je devrais être occupé à faire activement d’autres choses plus rentables pour mon employeur préféré. Oublions courtement ceci.

Le but de ce journal de bord est d’exposer des projets plus ou moins réalisables pour essayer un jour de les concrétiser. D’où ce titre un peu hasardeux : “en construction”…

Ces projets seront axés internet, programmation, électronique (quelle originalité), mais aussi robotique, et bien d’autres choses encore…

Vous trouverez un aperçu d’un projet discontinué ici. La base de données est HS, le forum et la galerie ne fonctionnent donc pas. Bref, déjà en construction, il aurait besoin d’un bon coup de sableuse.