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

Auteur Sujet: [SFML 2.1] Compilation sur Mac OS X.  (Lu 3933 fois)

0 Membres et 1 Invité sur ce sujet

Sacha

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
[SFML 2.1] Compilation sur Mac OS X.
« le: Novembre 22, 2013, 11:35:43 am »
Bonjour a tous !

J'ai arpente tout le web et tout le forum a la recherche d'une solution a mon problème.
En effet, cela fait maintenant plusieurs jours que je tente sans succès de compiler ce code en SFML 2.1 sur mon Mac :

#include <SFML/Window.hpp>

int main()
{
  sf::Window window(sf::VideoMode(800, 600), "My window");
  return (0);
}

Je souhaite utiliser la SFML en ligne de commande et ne pas passer par Xcode du tout.
Je compile de la manière suivante :

g++ main.cpp -lsfml-graphics -lsfml-window -lsfml-system

De maniere a n'utiliser que les dlybs. Mais j'ai essaye de cette manière aussi afin d'utiliser le framework SFML :

g++ main.cpp -framework SFML -framework sfml-graphics -framework sfml-window -framework sfml-system

Seulement dans les deux cas j'ai la meme erreur :

Citer
Undefined symbols for architecture x86_64:
  "sf::String::String(char const*, std::__1::locale const&)", referenced from:
      _main in main-4EMYfT.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Je suis a cours d'idées et ici au boulot mes collègues ne savent pas non plus comment faire.
Merci d'avance de votre aide !

PS: J'ai installe la version 2.1 utilisant le script install.sh !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #1 le: Novembre 22, 2013, 11:42:59 am »
Tu as téléchargé quelle package de SFML ?
Laurent Gomila - SFML developer

Sacha

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #2 le: Novembre 22, 2013, 11:44:55 am »
Excusez moi je n'ai pas precise. J'ai installe la version 64bits gcc.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #3 le: Novembre 22, 2013, 11:52:34 am »
Je ne peux pas t'en dire plus malheureusement.

Est-ce que tu as déjà parcouru les nombreux sujets similaires du forum ? Par exemple http://fr.sfml-dev.org/forums/index.php?topic=13067.0
Laurent Gomila - SFML developer

Sacha

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #4 le: Novembre 22, 2013, 11:57:37 am »
Oui j'ai deja parcouru les nombreux topic et n'est toujours pas trouve de solution. Malheureusement je n'utilise pas Xcode je souhaite compiler dans le terminal comme sur Linux.
J'ai effectue l'installation de manière identique sur ma VM ubuntu et mon mac. Seulement avec la meme ligne de compilation ca fonctionne sur Ubuntu mais pas sur mac et les dlybs sont bien présentes sur mon mac...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #5 le: Novembre 22, 2013, 12:01:01 pm »
Tu es absolument certain que tu utilises la bonne libc par rapport au package que tu as téléchargé ?
Laurent Gomila - SFML developer

Sacha

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #6 le: Novembre 22, 2013, 12:02:07 pm »
Je peux parfaitement compiler d'autres projets simple en C et C++ sur mon mac. Devrais-je installer une nouvelle libc ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #7 le: Novembre 22, 2013, 12:07:07 pm »
Il faut que la libc que tu utilises pour compiler ton projet soit celle qui correspond au package SFML que tu as téléchargé.

Dans le lien que je t'ai donné précédemment :
Citer
Si vous avez téléchargé la version "GCC" depuis la page de téléchargement, vous devez choisir C++98 with GCC and libstdc++ and target 10.5.

Si vous avez téléchargé la version "Clang" depuis la la page de téléchargement, vous devez choisir C++11 with Clang and libc++.
Laurent Gomila - SFML developer

Sacha

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #8 le: Novembre 22, 2013, 12:12:13 pm »
Il me semble que ce sont les options de compilation de Xcode seulement je ne l'utilise pas je compile a la mano.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #9 le: Novembre 22, 2013, 12:32:48 pm »
Avec gcc c'est l'option -stdlib.
Laurent Gomila - SFML developer

Sacha

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #10 le: Novembre 22, 2013, 12:36:18 pm »
Citer
g++ main.cpp -stdlib=libc++ -lsfml-graphics -lsfml-window -lsfml-system

Undefined symbols for architecture x86_64:
  "sf::String::String(char const*, std::__1::locale const&)", referenced from:
      _main in main-CoKsWN.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

PS : Le problème se règle grace a ce flag : -stdlib=libstdc++ !
Ce qui donne : g++ main.cpp -stdlib=libstdc++ -lsfml-graphics -lsfml-window -lsfml-system

C'est parfait merci beaucoup !!!!!!!!!!!!
« Modifié: Novembre 22, 2013, 12:41:25 pm par Sacha »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #11 le: Novembre 22, 2013, 12:55:57 pm »
Oui... c'était marqué juste au dessus ;)

Citer
Si vous avez téléchargé la version "GCC" depuis la page de téléchargement, vous devez choisir C++98 with GCC and libstdc++ and target 10.5.
Laurent Gomila - SFML developer

Sacha

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #12 le: Novembre 22, 2013, 01:04:31 pm »
Oui mais ce n'est pas super explicite. Il faudrait dire que pour compiler la version gcc il faut utiliser le flag -stdlib avec l'option libstdc++. Ca pourrait aider si vous mettiez a jour le tuto pour les prochaines personnes je pense.
Merci encore en tout cas !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #13 le: Novembre 22, 2013, 02:46:19 pm »
Qu'est-ce qui n'est pas explicite ? C'est marqué noir sur blanc : si tu télécharges la version "GCC" tu dois utiliser libstdc++, C++98 et cibler OS X 10.5. Je ne vois pas comment faire mieux. A toi de fouiller la doc de gcc si tu ne sais pas à quelle(s) option(s) telle ou telle chose correspond. Les tutos SFML ne sont pas une encyclopédie universelle, on suppose que les gens savent lire le manuel de leurs outils ;)

De plus, comme Xcode est la solution standard sous OS X, on se concentre sur cet IDE. Ceux qui utilisent gcc sont censés savoir ce qu'ils font.
Laurent Gomila - SFML developer

Sacha

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [SFML 2.1] Compilation sur Mac OS X.
« Réponse #14 le: Novembre 23, 2013, 11:01:38 am »
Nous étions 4 étudiants en fin d'etudes a lire votre tuto et personne n'a trouve cela explicite pardonnez nous :)