vignette

Configurer Code::Blocks

vignette

an flag

 

---------------------------------------------
Préparation de code::blocks
---------------------------------------------

Pour une cible Windows exe 32bits
Configurer un nouveau compilateur avec un nom explicite (cross_compil_win32 par exemple)
Settings->Compiler puis copie du compilateur par defaut sous le nouveau nom.
Aller chercher les exécutables dans le répertoire /usr
pour C :i686-w64-mingw32-gcc
pour C++ :i686-w64-mingw32-g++
linker for dynamic lib:i686-w64-mingw32-g++ (!!! pas gcc)
linker for static lib: i686-w64-mingw32-ar
ressources compiler`/opt/Persowx310_Win32/bin/wx-config --host=i686-w64-mingw32 --rescomp`

Pour une cible Windows exe 64bits
Configurer un nouveau compilateur avec un nom explicite (cross_compil_win64 par exemple)
Settings->Compiler puis copy du compilateur par defaut sous le nouveau nom.
Aller chercher les exécutables dans le réperoire /usr
pour C :x86_64-w64-mingw32-gcc
pour C++ :x86_64-w64-mingw32-g++
linker for dynamic lib:x86_64-w64-mingw32-g++ (!!! pas gcc)
linker for static lib: x86_64-w64-mingw32-ar
ressources compiler`/opt/Persowx310_Win64/bin/wx-config --host=x86_64-w64-mingw32 --rescomp`

Pour chaque compilateur utilisé en compilation croisée indiquer dans "linker other options" -static (pour limiter le nombre de dll autres que ce qui concerne wxWidgets)

---------------------------------------------
Préparation du fichier de configuration de chaque application (fichier cbp de codeblock)
---------------------------------------------

Le plus simple est de modifier directement le fichier cbp avec votre éditeur de texte préféré
dans les lignes du fichier "cbp" de l'application modifier les chemins vers wx-config pour la cible considérée).
Pour chaque build de wxWidgets, ce chemin est le "prefix" qui a été utilisé à l'étape "configure".
Exemples

pour < Target title="ReleaseStatic310"> (pour créer une application Linux basée sur wxWidgets 3.1.0)
Dans les options du compilateur :
< Add option="`/opt/Persowx310_Lin64/bin/wx-config --static --cflags --unicode=yes`" />
Dans les options du linker :
< Add option="`/opt/Persowx310_Lin64/bin/wx-config --unicode=yes --static --libs`" />

pour < Target title="ReleaseWinStatic310_32"> (pour créer une application Windows 32bits basée sur wxWidgets 3.1.0)
Il faut désigner le bon compilateur à la place de gcc :< Option compiler="cross_compil_win32" >
Dans les options du compilateur :
< Add option="`/opt/Persowx310_Win32/bin/wx-config --host=i686-w64-mingw32 --static --cflags --unicode=yes`" />
Dans les options du linker :
< Add option="`/opt/Persowx310_Win32/bin/wx-config --host=i686-w64-mingw32 --static --libs --unicode=yes`" />

pour < Target title="ReleaseWinStatic310_64"> (pour créer une application Windows 64bits basée sur wxWidgets 3.1.0)
Il faut désigner le bon compilateur à la place de gcc :< Option compiler="cross_compil_win64" >
Dans les options du compilateur :
< Add option="`/opt/Persowx310_Win64/bin/wx-config --host=x86_64-w64-mingw32 --static --cflags --unicode=yes`" />
Dans les options du linker :
< Add option="`/opt/Persowx310_Win64/bin/wx-config --host=x86_64-w64-mingw32 --static --libs --unicode=yes`" />


Quelques soucis si des fonctions RichText sont utilisées. je suis arrivé à ces modifications, mais cela sent le bricolage.
Dans les options du linker, il faut ajouter : std,richtext
< Add option="`/opt/Persowx310_Win32/bin/wx-config --host=i686-w64-mingw32 --static --libs std,richtext --unicode=yes`" /> pour 32 bits
< Add option="`/opt/Persowx310_Win64/bin/wx-config --host=x86_64-w64-mingw32 --static --libs std,richtext --unicode=yes`" /> pour 64 bits
En compilation normale il faut ajouter aussi l'option -lexpat
< Add option="`/opt/Persowx310_Lin64/bin/wx-config --unicode=yes --static --libs std,richtext`" />
< Add option="-lexpat" />

L'application"ProjetMiniMini en fait autant que ce que son nom promet mais vous trouverez avec les sources son fichier cpb qui peut servir d'exemple.

 

Accueil