La version statique permet d'avoir les bibliothèques intégrés au binaire et donc d'éviter aux personnes n'ayant pas envie d'installer certaines bibliothèques ou ne sachant pas comment faire de lancer le jeu.
Si tu arrives à la compiler comme cela, tu dois pouvoir le compiler en statique avec le script (sauf si le script a un soucis :p)
[Résolu]Compilation du client sous Linux Ubuntu
Re: [Résolu]Compilation du client sous Linux Ubuntu
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson
-- Thomas Jefferson
Re: [Résolu]Compilation du client sous Linux Ubuntu
Hop une petite mise à jour du wiki suite à tes tests :
http://www.landes-eternelles.com/wiki/d ... _du_client
http://www.landes-eternelles.com/wiki/d ... _du_client
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson
-- Thomas Jefferson
Re: [Résolu]Compilation du client sous Linux Ubuntu
Si suite au passage en version Karmic Koala d'ubuntu (9.10) vous avez ce genre de message d'erreur à la compilation :
Il semblerait d'après ce qui est écrit sur le forum de la version US que cela vienne de la version mesa 7.6 qui bug un peu avec GL
Pour y remédier il y un hack de barbare (c'est pas moi qui le dit, c'est bluap) à faire dans le fichier platform.h du dossier sources client.
Il faut donc éditer le fichier platform.h, et à la ligne 78, remplacer :
par :
Attention en faisant cette manip, la compilation fonctionne mais j'ai quelques bugs graphiques (dessins 2d disparaissant ou changés dans l'inventaire et qui font parfois crasher e client en cliquant dessus)
Code : Tout sélectionner
$ make -f Makefile.linux
CC 2d_objects.o
In file included from 2d_objects.c:10:
load_gl_extensions.h:69: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglClientActiveTexture’
load_gl_extensions.h:77: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglLoadTransposeMatrixd’
load_gl_extensions.h:78: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglLoadTransposeMatrixf’
load_gl_extensions.h:79: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultTransposeMatrixd’
load_gl_extensions.h:80: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultTransposeMatrixf’
load_gl_extensions.h:81: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1d’
load_gl_extensions.h:82: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1dv’
load_gl_extensions.h:83: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1f’
load_gl_extensions.h:84: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1fv’
load_gl_extensions.h:85: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1i’
load_gl_extensions.h:86: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1iv’
load_gl_extensions.h:87: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1s’
load_gl_extensions.h:88: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1sv’
load_gl_extensions.h:89: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2d’
load_gl_extensions.h:90: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2dv’
load_gl_extensions.h:91: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2f’
load_gl_extensions.h:92: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2fv’
load_gl_extensions.h:93: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2i’
load_gl_extensions.h:94: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2iv’
load_gl_extensions.h:95: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2s’
load_gl_extensions.h:96: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2sv’
load_gl_extensions.h:97: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3d’
load_gl_extensions.h:98: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3dv’
load_gl_extensions.h:99: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3f’
load_gl_extensions.h:100: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3fv’
load_gl_extensions.h:101: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3i’
load_gl_extensions.h:102: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3iv’
load_gl_extensions.h:103: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3s’
load_gl_extensions.h:104: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3sv’
load_gl_extensions.h:105: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4d’
load_gl_extensions.h:106: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4dv’
load_gl_extensions.h:107: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4f’
load_gl_extensions.h:108: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4fv’
load_gl_extensions.h:109: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4i’
load_gl_extensions.h:110: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4iv’
load_gl_extensions.h:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4s’
load_gl_extensions.h:112: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4sv’
make: *** [2d_objects.o] Error 1
Pour y remédier il y un hack de barbare (c'est pas moi qui le dit, c'est bluap) à faire dans le fichier platform.h du dossier sources client.
Il faut donc éditer le fichier platform.h, et à la ligne 78, remplacer :
Code : Tout sélectionner
#else
#define GL_GLEXT_LEGACY
#include <GL/gl.h>
#include <GL/glu.h>
#include "glext.h"
#endif
Code : Tout sélectionner
#else
#define GL_GLEXT_LEGACY
#include <GL/gl.h>
// #undef is a temporary fix for new gl.h files
// until I find out how to do it correctly....
#undef GL_VERSION_1_2
#undef GL_VERSION_1_3
#include <GL/glu.h>
#include "glext.h"
#endif
Re: [Résolu]Compilation du client sous Linux Ubuntu
Le fichier glext.h a été modifié sur le SVN, merci de voir si cela fonctionne maintenant correctement. 

Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson
-- Thomas Jefferson
Re: [Résolu]Compilation du client sous Linux Ubuntu
La compilation fonctionne et je n'ai pas noté de bug pour le moment.
Bravo Ackak et merci.
Bravo Ackak et merci.
- TonyFlow
- Messages : 985
- Inscription : 02 mai 2007, 09:26
- Localisation : Normandie / Pierre-Blanche
- Contact :
Re: [Résolu]Compilation du client sous Ubuntu (et Fedora 12)
Pour info, venant de mettre à jour ma Fedora (de 10 à 12) j'ai eu le même soucis de compilation (avec mesa en version 7.7).
Je précise qu'il ne s'agissait pas du client SVN mais de l'officiel 1.6.0.1 pour lequel je regénérais un paquet RPM. En tout cas, j'ai opté pour une autre résolution du problème, toujours en patchant le fichier platform.h mais pour lui dire d'utiliser plutot le fichier glext.h du système.

En tout cas, mon paquet s'est bien compilé ainsi. C'est installé et jusqu'à preuve du contraire ça marche...
Patch utilisé pour la génération du rpm du client 1.6.0.1 pour FC12
Je précise qu'il ne s'agissait pas du client SVN mais de l'officiel 1.6.0.1 pour lequel je regénérais un paquet RPM. En tout cas, j'ai opté pour une autre résolution du problème, toujours en patchant le fichier platform.h mais pour lui dire d'utiliser plutot le fichier glext.h du système.
Vu l'explication sur l'usage d'un fichier glext.h fournis avec les sources du client, m'en passer au profit de celui de l'OS me semble totalement justifier dans mon cas où je compile pour un OS en particulier, donc avec la garantie supposée d'une version valide en placebluap a écrit :The reason we have a local copy of glext.h is because the version that ships with some OS are very old indeed and do not work. The use of a local copy is a documented work around that has worked for quite some time.

En tout cas, mon paquet s'est bien compilé ainsi. C'est installé et jusqu'à preuve du contraire ça marche...
Patch utilisé pour la génération du rpm du client 1.6.0.1 pour FC12
Just in case you never knew I miss you Slim, I love you too Oh! See my heart, it's black and blue When I die I will find you... My lovely man
But when you walk that walk and talk that talk You do it oh so well She's stone cold bush
Let me stand next to your Fire, my Pretty Little Ditty
But when you walk that walk and talk that talk You do it oh so well She's stone cold bush
Let me stand next to your Fire, my Pretty Little Ditty