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

Auteur Sujet: SFML 2.5: Compilation static Debian 8 (jessie)  (Lu 2266 fois)

0 Membres et 1 Invité sur ce sujet

Bauds

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
    • E-mail
SFML 2.5: Compilation static Debian 8 (jessie)
« le: Août 19, 2018, 04:45:52 pm »
Bonjour,

Après avoir lu et relu les tutoriels consacrés au sujet, sans succès, je me tourne donc vers le forum.

J'ai utilisé cmake-gui, et suis arrivé à produire le "make install" correspondant à ma distribution Linux (Anti-X 16, basée sur Debian 8 Jessie). Avec une installation dans un répertoire non courant.

Installation : Ok

La compilation du premier exemple du tuto de test se déroule correctement (main.cpp => main.o).
Par contre, au moment de lier le fichier main.o aux bibliothèques sfml, et d'en construire un exécutable ; la commande:

g++ main.o -o sfml-app -L<installation-de-sfml>/lib -lsfml-graphics-s -lsfml-window-s -lsfml-system-s

Me retourne, de mémoire, un message m'indiquant que :

ld n'a pu trouvé -sfml-graphics-s

Le chemin des lib étant correcte, je renomme alors les lib installé par make install :

libsfml-XXXXX-s.a en libsfml-XXXXX-s.so

Premier constat, les libs sont des ".a", non pas des ".so"


Recompilation + relikage par g++:

Les lib sont bien trouvée ; mais j'obtiens une suite de messages d'erreur du type :

 /mon/chemin/SFML/lib/libsfml-system.so(ThreadLocalImpl.cpp.o): dans la fonction « sf::priv::ThreadLocalImpl::getValue() const »:
ThreadLocalImpl.cpp:(.text+0x33): référence indéfinie vers « pthread_getspecific »


Et ceci pour chaque lib et chaque fichier .cpp

Après recherche sur internet ; il semblerait que ce soit lié à un problème de renommage de fichier passé par le paramètre -o de la commande g++.

Et là je bloque.

Je sais que ce n'est pas un problème lié à la sfml ; mais si une lanterne pouvais éclairer ma bougie.

D'avance merci.




Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: SFML 2.5: Compilation static Debian 8 (jessie)
« Réponse #1 le: Août 19, 2018, 05:07:13 pm »
L'extension .a est correcte pour les bibliothèques statiques (qui ne sont que des archives de fichiers compilés, rien à voir avec les bibliothèques dynamiques .so). Si le fichier libsfml-xxx-s.a existe alors le flag -lsfml-xxx-s devrait le trouver, il n'y a rien de bizarre à faire.
Laurent Gomila - SFML developer

Bauds

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
    • E-mail
Re: SFML 2.5: Compilation static Debian 8 (jessie)
« Réponse #2 le: Août 19, 2018, 06:40:37 pm »
Effectivement, j'avais du omettre le ''-s'' au début de mes essais.

Par contre toujours pas reussi à effectuer un linkage en static.

Suis passé en dynamique et là plus de problème.

C'est à priori lié au dépendance, et donc au paramètre à ajouter pour pouvoir link en static.

Merci à vous Laurent.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: SFML 2.5: Compilation static Debian 8 (jessie)
« Réponse #3 le: Août 19, 2018, 06:42:58 pm »
Oui, lorsque tu lies les bibliothèques statiques, il faut aussi lier toutes les dépendances de SFML. C'est indiqué dans le tutoriel.
Laurent Gomila - SFML developer