Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [RÉSOLU]SFML2 compilée "maison" en Statique  (Lu 7999 fois)

0 Membres et 1 Invité sur ce sujet

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : SFML2 compilée "maison" en Statique
« Réponse #15 le: Mai 11, 2013, 07:50:09 pm »
Je ne sais pas si c'est parlant mais voilà ce que j'utilise

Citer
-lsfml-audio-s-d -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d -lpthread -lGL -lX11 -lXrandr -lfreetype -lGLEW -ljpeg -lsndfile -lopenal

Gorf

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
    • E-mail
Re : SFML2 compilée "maison" en Statique
« Réponse #16 le: Mai 11, 2013, 07:57:09 pm »
Et bien il s'en est passé des choses ici  :o !
Donc tu dois lier toi-même toutes les dépendances de SFML à ton projet (la liste se trouve dans la tutoriel CMake).

Donc je dois linker chaque lib moi-même dans le cas du static...
Je me suis fait rattraper par la paresse :D

Et au final pour garder un éxécutable complet sans besoin de .so/.dll, je devrai trouver toutes les dépendances en static ! Géniaaaal !
Et encore une journée de recherche/compilation...
Bouffer du code c'est sain et plein de protéines !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : SFML2 compilée "maison" en Statique
« Réponse #17 le: Mai 11, 2013, 08:47:24 pm »
Il ne faut pas déclarer de variables SFML du genre Window ou Texture (i.e. des variables qui font des trucs non anodins dans leur constructeur) dans une portée globale.
Laurent Gomila - SFML developer

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : SFML2 compilée "maison" en Statique
« Réponse #18 le: Mai 11, 2013, 08:49:46 pm »
Je préfère la technique de Cpl.Bator. C'est assez simple et efficace. Un dossier lib dans le répertoire du binaire, on copie le tout, on indique gentiment où se servir et le tour est joué. C'est moins de prises de tête à mon sens. L'essentiel est que ça marche.

Gorf

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
    • E-mail
Re : SFML2 compilée "maison" en Statique
« Réponse #19 le: Mai 11, 2013, 08:56:14 pm »
Je préfère la technique de Cpl.Bator. C'est assez simple et efficace. Un dossier lib dans le répertoire du binaire, on copie le tout, on indique gentiment où se servir et le tour est joué. C'est moins de prises de tête à mon sens. L'essentiel est que ça marche.
Oui, j'ai aussi pensé à ça mais avant il me faudrait une précision, le path des .so à charger se trouve dans le binaire ou le système va les chercher dans le répertoire par défaut ? (/usr/local/lib/ ou /usr/lib/)
Bouffer du code c'est sain et plein de protéines !

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : Re : SFML2 compilée "maison" en Statique
« Réponse #20 le: Mai 11, 2013, 09:11:39 pm »
Je préfère la technique de Cpl.Bator. C'est assez simple et efficace. Un dossier lib dans le répertoire du binaire, on copie le tout, on indique gentiment où se servir et le tour est joué. C'est moins de prises de tête à mon sens. L'essentiel est que ça marche.
Oui, j'ai aussi pensé à ça mais avant il me faudrait une précision, le path des .so à charger se trouve dans le binaire ou le système va les chercher dans le répertoire par défaut ? (/usr/local/lib/ ou /usr/lib/)

Pour faire simple, après avoir compiler tes fichiers *.so, tu crée un dossier lib dans le répertoire où ton binaire est compilé. Puis tu ajoute le dossier lib de ton binaire dans les propriétés de ton projet (exemple : /home/gorf/projets/fatalblaster/lib) et puis tu link les lib du dossier. N'utilise pas les lib du système sinon, ça ne sert à rien, l'utilisateur devra posséder sfml sur son ordinateur.

Gorf

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
    • E-mail
Re : Re : Re : SFML2 compilée "maison" en Statique
« Réponse #21 le: Mai 11, 2013, 09:21:18 pm »
Pour faire simple, après avoir compiler tes fichiers *.so, tu crée un dossier lib dans le répertoire où ton binaire est compilé. Puis tu ajoute le dossier lib de ton binaire dans les propriétés de ton projet (exemple : /home/gorf/projets/fatalblaster/lib) et puis tu link les lib du dossier. N'utilise pas les lib du système sinon, ça ne sert à rien, l'utilisateur devra posséder sfml sur son ordinateur.

Oui oui j'ai compris ça, ce que je demande en fait c'est :
Est-ce que mon programme, utilisé sur un autre ordinateur, ira chercher SFML dans le dossier lib, ou a l'emplacement par défaut. (Si linké avec celles dans le dossier lib). Et ensuite, ça risque de ne toujours pas marcher car SFML ira de toute façon (supposément) chercher ses dépendances dans /usr/local/ et pas dans le dossier lib. Ou alors faut recompiler SFML et changer les Paths.
Bouffer du code c'est sain et plein de protéines !

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : Re : Re : Re : SFML2 compilée "maison" en Statique
« Réponse #22 le: Mai 11, 2013, 09:26:33 pm »
Pour faire simple, après avoir compiler tes fichiers *.so, tu crée un dossier lib dans le répertoire où ton binaire est compilé. Puis tu ajoute le dossier lib de ton binaire dans les propriétés de ton projet (exemple : /home/gorf/projets/fatalblaster/lib) et puis tu link les lib du dossier. N'utilise pas les lib du système sinon, ça ne sert à rien, l'utilisateur devra posséder sfml sur son ordinateur.

Oui oui j'ai compris ça, ce que je demande en fait c'est :
Est-ce que mon programme, utilisé sur un autre ordinateur, ira chercher SFML dans le dossier lib, ou a l'emplacement par défaut. (Si linké avec celles dans le dossier lib). Et ensuite, ça risque de ne toujours pas marcher car SFML ira de toute façon (supposément) chercher ses dépendances dans /usr/local/ et pas dans le dossier lib. Ou alors faut recompiler SFML et changer les Paths.

Il ira naturellement chercher les lib dans /usr/lib, mais ce n'est pas dérangeant. Aujourd'hui, toutes les distributions fournissent d'office toutes les dépendances de SFML.

Gorf

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
    • E-mail
Re : SFML2 compilée "maison" en Statique
« Réponse #23 le: Mai 11, 2013, 09:33:33 pm »
Okay, merci de vos réponses !
Je mets en résolu.
Bouffer du code c'est sain et plein de protéines !

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : [RÉSOLU]SFML2 compilée "maison" en Statique
« Réponse #24 le: Mai 11, 2013, 10:50:03 pm »
Par contre attention, si tu comptes un jour créer des paquets pour une distribution, il est toujours préférable de créer une dépendance avec SFML ;)

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : [RÉSOLU]SFML2 compilée "maison" en Statique
« Réponse #25 le: Mai 26, 2013, 10:41:07 am »
Pour avoir réussie parfaitement à compiler statiquement SFML dans mon binaire, je voudrais toutefois mettre en garde d'autres personnes qui voudraient opter pour cette solution : réfléchissez bien à vos dépendances et de quelles manières vous allez les lier. Il y a certaines distributions qui disposent de la plupart des lib comme openal, jpeg8, glew etc. D'autres attention, c'est un casse tête assuré. Par exemple Fedora n'embarque que la version de libgc 2.16 et si vous avez travaillé avec libgc 2.17 sur votre machine, il y a aura un souci de lancement. Inutile d'essayer de linker statiquement libgc, vous allez droit à la catastrophe et ce n'est pas viable.

Si vous avez vraiment besoin de linker statiquement la plupart des libs, je vous suggère openal, jpeg et glew. Le reste, on le retrouve facilement dans chaque distribution.