wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :668

Membres en ligne : 0
Invités en ligne : 7
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Compilation - Installation - Réglages IDE
» Cohabitation des versions mono/multi-lib, shared/static...
Conversation (Résolue) : Cohabitation des versions mono/multi-lib, shared/static...
23-09-2010 11:25:03  Cohabitation des versions mono/multi-lib, shared/static... #1
hx (Membre)
Inscrit le : 21-09-2010
Messages: 35
Snippets: 0
Tutoriels: 0
Hors ligne
Salut,

Après avoir écrit et bidouillé avec un court programme, je me suis aperçu de la taille du fichier que je devais transmettre pour déployer cette appli. J'avais compilé wx en monolitique/shared/realease ainsi

Code:

mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release


Du coup j'ai voulu faire un essais en multi-lib, je m'attendais a conserver ma big dll monolytique, comme avec le debug,(RELEASE et DEBUG cohabite sans problème (heureusement)) mais le clean suivant a viré ma monolithique

Code:

mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD=release clean


il semble donc impossible de conserver dans le même répertoire "gcc_dll" les 4 versions possibles de WX:

      MONOLITHIC   SHARED
1)        0                 0
2)        0                 1
3)        1                 0
4)        1                 1


Donc pour pouvoir choisir a la création de l'appli, sous code:blocks si c'est linké dynamiquement ou statiquement, si on utilise en multi/min lib comment faites vous ?

Il existe bien une option c'est d'avoir 4 répertoires racine c:\wxWidget2.8.11 avec chacun leur répertoire "gcc_dll" indépendant. Je ne trouve pas ca super classe, il doit bien y avoir autre chose de plus clean non ?

Merci d'avance

Hx
23-09-2010 12:08:39  Re: Cohabitation des versions mono/multi-lib, shared/static... #2
Sem (Membre)
Inscrit le : 31-05-2008
Messages: 64
Snippets: 0
Tutoriels: 0
Hors ligne
salut,
d'où l'intérêt d'installer les libs et d'utiliser wx-config, après je n'utilise pas codeblock pour ma part donc je ne sais pas trop s'il est capable de l'utiliser.

Donc tu as en installant comme il faut par exemple:
/mingw/lib/libwx_mswu-2.9.a
/mingw/lib/libwx_mswud-2.9.a
/mingw/lib/libwx_mswu-2.9.dll.a
/mingw/lib/libwx_mswud-2.9.dll.a
/mingw/lib/wx/config/msw-unicode-2.9
/mingw/lib/wx/config/msw-unicode-static-2.9
/mingw/lib/wx/config/msw-unicode-debug-2.9
/mingw/lib/wx/config/msw-unicode-debug-static-2.9
/mingw/lib/wx/include/msw-unicode-2.9/wx/setup.h
/mingw/lib/wx/include/msw-unicode-2.9/wx/msw/rcdefs.h
/mingw/lib/wx/include/msw-unicode-static-2.9/wx/setup.h
/mingw/lib/wx/include/msw-unicode-static-2.9/wx/msw/rcdefs.h
/mingw/lib/wx/include/msw-unicode-debug-2.9/wx/setup.h
/mingw/lib/wx/include/msw-unicode-debug-2.9/wx/msw/rcdefs.h
/mingw/lib/wx/include/msw-unicode-debug-static-2.9/wx/setup.h
/mingw/lib/wx/include/msw-unicode-debug-static-2.9/wx/msw/rcdefs.h
/mingw/include/wx-2.9/wx/...

et tu installes wx-config dans /bin

ainsi il ne te reste plus qu'a utiliser wx-config qd tu veux compiler
par exemple :
wx-config --lists : te donne la liste des configs possibles ainsi que la config par défaut
wx-config --help : te donne l'aide

pour compiler en static debug par exemple:
wx-config --debug=yes --unicode=yes --static=yes --cxxflags
wx-config --debug=yes --unicode=yes --static=yes --libs

donc par exemple dans un makefile ca ferait:
CXXFLAGS  = `wx-config --debug=yes --unicode=yes --static=yes --cxxflags`  -Wall
LIBS      = `wx-config --debug=yes --unicode=yes --static=yes --libs`

alors qd on fait un makefile -f makefile.gcc on a pas le wx-config je crois, mais il est dispo quelquepart sur le wiki de wxwidgets il me semble, je regarderai si je le retrouve,
C'est plus facile à mettre en place en utilisant la compile via le configure puisqu'un "make install" installe tout comme il faut, mais c'est vraiment très pratique sinon,
tu peux créer d'autres config après, en monolitic ou pas etc..., j'ai jamais essayé mais tu peux spécifier le fichier de config désiré si tu le souhaites, on peut meme choisir sa version et faire cohabiter 2.8 et 2.9 etc...,
Sem

Dernière modification par Sem (23-09-2010 12:14:03)

23-09-2010 13:34:44  Re: Cohabitation des versions mono/multi-lib, shared/static... #3
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Salut.

Il est vrai que faire cohabiter les libs monolithiques et multi-libs peut poser problème.

Il y a quand même une solution :
- Tu compiles la version que tu utiliseras le moins (admettons, pour l'exemple, qu'il s'agit de la version monolithique)
- Tu renommes le dossier contenant les libs (gcc_dll devient par exemple gcc_mono_dll)
- Tu compiles la version que tu utiliseras le plus (dans notre cas, la version multi-libs)
- Tu utilises tes libs normalement sous Code::Blocks (donc, avec le dossier gcc_dll contenant la version multi-libs)
- Tu dupliques la configuration "release", tu la nommes "release-mono", et tu modifies les dossiers en conséquence (il y en a un pour le compilateur et un pour l'éditeur de liens).
- Il te suffit ensuite de "switcher" entre les configurations pour passer d'une version des libs à l'autre.

Je sais de mémoire qu'il y a une autre possibilité (l'utilisation d'une variable "CONFIG" lors de la compilation des libs), mais je ne l'ai jamais utilisée.
Faudra que je teste ça un de ces quatres...

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
23-09-2010 14:07:23  Re: Cohabitation des versions mono/multi-lib, shared/static... #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Plop ! C'est encore moi !

Je viens de regarder ça plus en détails, et en fait, c'est tout simple.

Donc, il faut faire comme je te l'ai dit au post précédent, mais tu peux carrément renommer le dossier de libs pour toutes les versions :
Par exemple, pour la version dll monolithique, les libs seront dans le dossier "WX_INSTALL_DIR\lib\gcc_dllmono" au lieu de "WX_INSTALL_DIR\lib\gcc_dll" par défaut.
Pour la version multi-libs, elles seront dans le dossier "WX_INSTALL_DIR\lib\gcc_dllmulti" au lieu de "WX_INSTALL_DIR\lib\gcc_dll" par défaut.

Lorsque tu crées ton projet sous Code::Blocks, avec l'assistant, tu peux spécifier une configuration (ça doit être à l'avant-dernière étape de l'assistant).
Généralement, ce champ reste vide, mais dans notre cas, il faut mettre "mono" ou "multi", et les chemins seront corrects dès le départ.

Ensuite, pour pouvoir utiliser la deuxième version au sein du même projet, tu passe par l'assistant "Nouvelle cible de génération", et tu répètes l'opération avec l'autre configuration.

C'est à mon avis le moyen le plus simple pour résoudre les conflits entre les versions Monolithiques et Multi-libs

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
23-09-2010 22:53:14  Re: Cohabitation des versions mono/multi-lib, shared/static... #5
hx (Membre)
Inscrit le : 21-09-2010
Messages: 35
Snippets: 0
Tutoriels: 0
Hors ligne
Salut,
Excellent ! ca réponds bien à ma question.
Je m'en va faire quelques essais et comparaison de poids
Merci beaucoup
Hx
24-09-2010 08:42:21  Re: Cohabitation des versions mono/multi-lib, shared/static... #6
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Il reste cependant un petit problème pour les libs dynamiques : les deux versions (monolithique et multi-libs) possèdent toutes les deux une dll supplémentaire pour OpenGL, et dans les deux cas, elle porte le même nom.

Donc, si vous faites comme moi, c'est à dire que vous placez toutes les dll dans un seul et même dossier, une des deux versions sera écrasée

Il faut bien faire attention si on l'utilise, car elle est dépendante du reste des libs.

Sinon, pour le reste, y'a pas de soucis.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Compilation - Installation - Réglages IDE
» Cohabitation des versions mono/multi-lib, shared/static...