Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 2


|
Conversation : Installer 2.9 sous Ubuntu |
Alex34 (Nouveau membre)
Inscrit le : 29-03-2010
Messages: 5
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour à tous. J'utilise wxWidgets pour plusieurs applications Windows et Linux. J(ai récemment basculé sur la version 2.9 (essentiellement à cause des wxPropertyGrid mieux intégrés...) Je n'ai pas eu de problème pour installer la version 2.9 sous Windows et maitrise relativement bien la compilation en ligne de commande sous Windows avec MinGW. Mais j'aimerais également l'installer sous Linux Ubuntu. La version 2.8 s'installe sans problème avec le gestionnaire de paquets, mais comment faire pour la 2.9 non-référencée dans l'installeur automatique d'Ubuntu ? J'utilise GCC tant sous Windows qu'Ubuntu, mais je manque d'infos. Je bloque sur des questions qui vont surement paraitre très bêtes aux experts du forum: Dans quels répertoires sont installés les sources, les libs sous Linux ? Plus exactement, ou décompresser l'archive tar des sources ? Dans quel répertoire se placer en console pour lancer un make ? Est-ce que je ne rique pas de détruire la version 2.8 qui marche bien ? Ou trouver un tutoriel d'installation des 2.9 sous Ubuntu ? Dans code:blocks ubuntu, quelle valeur donner à la variable globale <#wx> qui permet de rechercher les libs ?
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Salut.
Je n'ai pas encore essayé l'installation de wx-2.9 sous Ubuntu, mais voici quand même quelques éclaircissements.
Il faut télécharger l'archive des sources et la décompresser dans ton home ou dans ton dossier habituel de dev.
Pour la compilation, tu peux t'inspirer du wiki wxWidgets.
Ensuite, pour l'installation, je ne sais pas trop comment ça marche, mais je me rappelle qu'à une période, j'avais les versions dynamique et statique des libs installées, et je pouvais switcher entre les deux avec une commande à la c** (un truc du style update-alternatives, c'est à vérifier).
Pour la compilation avec Code::Blocks, on utilise normalement la commande wx-config qui permet d'avoir les bonnes options en fonction des libs installées (et du choix fait avec la commande update-alternatives). wx-config fait normalement partie du paquet wx-common.
En tout cas, tiens-moi au courant de ton avancement.
Bonne chance, et @+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Sem (Membre)
Inscrit le : 31-05-2008
Messages: 64
Snippets: 0
Tutoriels: 0
Hors ligne |
bonjour, moi je fais comme cela :
tu récupères l'archive de la version 2.9.1 ici par exemple.
Ensuite décompression, puis enfin création du dossier de compilation, configuration et compilation:
Code: cd wget http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.9.1.tar.bz2 tar xjf ../wxWidgets-2.9.1.tar.bz2 cd wxWidgets-2.9.1 mkdir build-uni-mono-shared cd build-uni-mono-shared ../configure --enable-official_build --enable-unicode --enable-optimise --enable-shared --enable-monolithic make make install wx-config --version wx-config --list
Pour le configure, il te faut regarder les options disponibles : par exemple la c'est une version unicode shared monolithic. Si tout s'est bien déroulé, tu devrais avoir une réponse à wx-config --version du style 2.9.1. wx-config --list indiquera toutes les version de wx-config installé.
Si tu désires avoir une version static, tu peux très bien l'installer de cette manière ensuite:
Code: cd .. mkdir build-uni-mono-static cd build-uni-mono-static ../configure --enable-official_build --enable-unicode --enable-optimise --disable-shared --enable-monolithic make make install wx-config --version wx-config --list
Les deux seront installés sur ta machine, sachant que la dernière version installé est la version par défaut.
Sem
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
@sem : Petite question, au passage :
J'ai actuellement la version officielle des libs wx-2.8.10 sous Ubuntu 10.04 car je fourni les paquets Nightly-Build amd64 de Code::Blocks (donc, je suis un peu obligé de compiler avec cette version de wxWidgets)
Si je procède comme tu dis (compilation + installation), je passe bien à la version 2.9.1 Mais comment je fais pour repasser à la version 2.8.10 ?
J'ai fait le test (sous VirtualBox heureusement), et même après un sudo make uninstall, wx-config --version retourne toujours 2.9.1
D'ailleurs, l'installation ne se fait pas au même endroit que celle des libs "officielles" : - les libs 2.8.10 officielles sont installées dans /usr/lib - les libs 2.9.1 compilées sont installées dans /usr/local/lib
Du coup : - sudo update-alternatives --config wx-config ne liste que les possibilités de la version officielle (c'est à dire wxgtk et wxbase) - wx-config --list ne donne que la version 2.9.1
C'est quand même à creuser cette histoire...
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Sem (Membre)
Inscrit le : 31-05-2008
Messages: 64
Snippets: 0
Tutoriels: 0
Hors ligne |
bonjour, normalement, si ton installation s'est bien déroulé, tu as un dossier quelque part du style /usr/lib/wx/config/ avec toutes les configs que wx-config exploite,
l'idée étant d'installer biensur tout au même endroit. Pour les installations, il faut penser à utiliser le --prefix=/usr par exemple.
Ensuite le wx-config s'utilise avec la 2.8.1 comme cela : wx-config --version=2.8.1 --cxxflags wx-config --version=2.8.1 --libs
sem ---------- bonjour, d'ailleurs ton problème vient principalement d'une installation dans 2 dossiers différents, si tu fais un
Code:
tu dois probablement avoir un /usr/bin/wx-config et /usr/local/bin/wx-config avec l'un qui cherche les configs dans /usr/lib/wx/config et l'autre dans /usr/local/lib/wx/config
Sem
Dernière modification par Sem (31-10-2010 09:09:16)
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Hello
Bon, je regarderais ça en fin de journée. Sem:Pour les installations, il faut penser à utiliser le --prefix=/usr par exemple Il faut le mettre aussi lors de la compilation ou juste lors du make install ?
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Sem (Membre)
Inscrit le : 31-05-2008
Messages: 64
Snippets: 0
Tutoriels: 0
Hors ligne |
bonjour, c'est lors de la configuration, par exemple :
Code: ../configure --enable-official_build --enable-unicode --enable-optimise --disable-shared --enable-monolithic --prefix=/usr make make install
le prefix par défaut étant /usr/local en général. Tu peux tout mettre dans /usr/local ou dans /usr, l'important étant d'avoir un et un seul wx-config et une installation à un endroit commun de toutes les versions de wx-config,
Sem
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Bon, c'est (un peu) mieux, mais c'est pas encore ça 
Après le "make install", il faut faire un "sudo ldconfig". Résultat, wx-config --list me donne bien :
Code:wx-config --list Default config is gtk2-unicode-2.9 Default config will be used for output Also available in /usr: base-unicode-release-2.8 gtk2-unicode-release-2.8 Et un wx-config --version me donne bien 2.9.1.
Là où ça se complique, c'est pour sélectionner une des autres versions disponibles.
Si je fait, par exemple, wx-config --version=2.8.10 --libs, j'obtiens un joli "Warning : No config found to match: /usr/bin/wx-config --version=2.8.10"
Normalement, c'est là que la commande update-alternatives entre en jeu. Le problème, c'est que non seulement elle ne reconnait pas la version 2.9.1 installée, mais en plus elle re-bascule sur la version 2.8.10 par défaut, et il devient impossible de re-sélectionner la version 2.9.1 :
Code:sudo update-alternatives --config wx-config Il existe 2 choix pour l'alternative wx-config (qui fournit /usr/bin/wx-config). Sélection Chemin Priorité État ------------------------------------------------------------ * 0 /usr/lib/wx/config/gtk2-unicode-release-2.8 288 mode automatique 1 /usr/lib/wx/config/base-unicode-release-2.8 287 mode manuel 2 /usr/lib/wx/config/gtk2-unicode-release-2.8 288 mode manuel Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné : A ce stade, j'ai deux possibilités : - Je fais un [CTRL] + [C], et tout reste tel-quel (wx-config --version retourne 2.9.1) - Je presse [ENTREE], et je re-bascule sur la vesion 2.8.10, avec un message qui dit : console:update-alternatives: avertissement: forcing reinstallation of alternative /usr/lib/wx/config/gtk2-unicode-release-2.8 because link group wx-config is broken. Le problème, c'est qu'ensuite, je ne peux pas re-passer en 2.9.1 (sauf en faisant un make install depuis le dossier de compilation).
Va falloir que je pose la question su le forum officiel, pour voir ce qu'ils en disent.
Y'a un truc qui est bizarre, c'est que pour la version 2.9.1, le mot "release" n'apparait pas dans le nom de la config
Je vous tiens au courant dès que j'ai du nouveau
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Sem (Membre)
Inscrit le : 31-05-2008
Messages: 64
Snippets: 0
Tutoriels: 0
Hors ligne |
bonjour, je vois pas pourquoi tu utilises update-alternative qui relink les libs. Ce matin j'ai fait un test pour vérifier sur une machine ubuntu 10.10 qui n'avait pas wxWidgets installé. Tout fonctionne parfaitement: je met un ">>" devant les lignes de sortie:
Code: mkdir wxwidgets cd wxwidgets wget http://prdownloads.sourceforge.net/wxwindows/wxGTK-2.8.11.tar.gz tar zxvf wxGTK-2.8.11.tar.gz wget http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.9.1.tar.bz2 tar xjf ../wxWidgets-2.9.1.tar.bz2 mkdir build-2.8 cd build-2.8 ../wxGTK-2.8.11/configure --prefix=/usr --enable-official_build --enable-unicode --enable-optimise --disable-shared --enable-monolithic make sudo make install wx-config --list >>Default config is gtk2-unicode-release-static-2.8 >>Default config will be used for output cd .. mkdir build-2.9 cd build-2.9 ../wxWidgets-2.9.1/configure --prefix=/usr --enable-official_build --enable-unicode --enable-optimise --disable-shared --enable-monolithic make sudo make install wx-config --list >>Default config is gtk2-unicode-static-2.9 >>Default config will be used for output >>Also available in /usr: >>gtk2-unicode-release-static-2.8 wx-config --cxxflags >>-I/usr/lib/wx/include/gtk2-unicode-static-2.9 -I/usr/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -pthread wx-config --cxxflags --version=2.8 >>-I/usr/lib/wx/include/gtk2-unicode-release-static-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
Il ne faut pas utilisé 2.8.11 mais 2.8 en numéro de version ( voir le fichier de config ), ce système permet de faire cohabiter plusieurs versions mais pas des versions d'une meme "famille" ce qui semble logique puisque la 2.8.11 remplace la 2.8.10 qui remplace la 2.8.9 ...,
Sem
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Salut.
Bon, effectivement, après le sudo make install, et une bonne utilisation de wx-config --version, ça marche :
Code: wx-config --list >> >> Default config is gtk2-unicode-2.9 >> >> Default config will be used for output >> >> Also available in /usr: >> base-unicode-release-2.8 >> gtk2-unicode-release-2.8 wx-config --libs core,base >> -pthread -lwx_gtk2u_core-2.9 -lwx_baseu-2.9 wx-config --libs core,base --version=2.8 >> -pthread -Wl,-Bsymbolic-functions -lwx_gtk2u_core-2.8 -lwx_baseu-2.8
Mais il subsiste un problème (oui, je sais, je suis chiant ) Comment faire pour lancer une compilation par make en utilisant la version 2.8 sachant que le makefile ne spécifie pas de version ?
Sem:Je vois pas pourquoi tu utilises update-alternative qui relink les libs. C'est justement pour ça : définir quelle est la version par défaut. Normalement, depuis les dépots Ubuntu, tu peux installer les versions 2.6 et 2.8, en Debug / Release, Statique/Dynamique, Unicode/Ansi. Sachant qu'en plus chaque version est déclinée en deux sous-versions (base et gtk2), ça fait que tu peux faire cohabiter jusqu'à 32 versions différentes sans problème. Et l'utilisation de update-alternatives te permet de définir quelle est la version par défaut utilisée par le système.
Comme je l'ai dit plus haut, je fourni les paquets amd64 pour Code::Blocks. Je suis donc obligé, pour l'instant, de compiler avec la version 2.8.
Donc, en clair, ma question est : Comment définir une des version disponibles depuis wx-config --list comme étant la version par défaut utilisée par wx-config --libs ?
En tout cas, merci pour ces éclaircissements.
@+ Xav'
Edit : J'ai dit une connerie : les versions Ansi et Statiques ne sont pas disponibles dans les dépôts Ubuntu, mais dans le dépôt wxWidgets. Ça fait quand même 8 versions différentes disponibles dans les dépôts officiels.
Dernière modification par Xaviou (03-11-2010 19:10:42)
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Sem (Membre)
Inscrit le : 31-05-2008
Messages: 64
Snippets: 0
Tutoriels: 0
Hors ligne |
bonjour, pas si simple comme problème, si tu compares le wx-config après un make install de wxWidgets 2.9 et après un make install de 2.8 tu verras que c'est dans le script lui même qui détermine la version par défaut : sachant que c'est tjrs la dernière version installé qui est la version par défaut. Je ne connais pas du tout codeblock, y a pas du tout moyen de définir des "sets" d'include/libs qui vont bien ? genre wx-config --version=2.9 --libs etc... ? Sem
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Bon.
Après avoir posé la question sur le forum officiel wxWidgets, il en est ressorti deux choses.
Tout d'abord, il n'est pas forcément nécessaire de faire un make install pour pouvoir utiliser les libs 2.9.1. Elles peuvent être directement utilisées depuis le répertoire de compilation (dans lequel se trouve le wx-config qui leur est associé). Il faut juste, lorsque l'on lance la compilation d'un logiciel, s'assurer que c'est bien ce wx-config qui est utilisé à la place de celui installé par les paquets de libs officielles.
Deuxièmement, comme la version 2.9.1 des libs est considérée comme "non-stable", il n'est pas conseillé de l'installer (même en en faisant un paquet). Et comme cette version n'est pas présente dans les dépôts officiels, il ne sera pas possible de distribuer une application l'utilisant hormis en créant le paquet libwxgtk2.9 ce qui peut vite devenir fastidieux).
Bref, il ne me reste qu'à faire quelques tests pour voir si l'utilisation d'un wx-config "non-installé" est possible (si tu connais la méthode, je suis preneur ).
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
|