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

Auteur Sujet: Compilation statique SFML 2  (Lu 4177 fois)

0 Membres et 1 Invité sur ce sujet

l0

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Compilation statique SFML 2
« le: Avril 07, 2012, 12:24:00 pm »
Bonjour,

J'ai installé SFML 2 sur mon ordinateur (Windows 7) car ma carte graphique ATI ne marchait pas avec SFML 1.6...
Du coup je réussi à la compiler avec cMake en statique, à compiler le .cbp à régler des problèmes d'include donc j'en ai *****  ;D
Et là je compile et ...
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf9VideoModeC1Ejjj'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf12RenderWindowC1ENS_9VideoModeERKSsjRKNS_15ContextSettingsE'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZNK2sf6Window6isOpenEv'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf6Window9pollEventERNS_5EventE'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf6Window5closeEv'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf5ColorC1Ehhhh'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf12RenderTarget5clearERKNS_5ColorE'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf6Window7displayEv'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf12RenderWindowD1Ev'|
obj\Release\main.o:main.cpp|| undefined reference to `_imp___ZN2sf12RenderWindowD1Ev'|
||=== Build finished: 10 errors, 0 warnings ===|

J'ai aussi rendu le code de départ fait pour la SFML 1.6 compatible avec la 2.0...
Je compile sous CodeBlocks et dans other links options j'ai :
-lsfml-graphics-s
-lsfml-window-s
-lsfml-system-s

J'ai suivi à la lettre près le tutoriel du site du zéro pour installer SFML sauf que j'ai utilisé la 2.0.
J'ai mis les .a au bon endroit et les includes au bon endroit aussi...
En revanche je ne sais pas si cela à un rapport mais lorsque j'ai voulu ouvrir une include SFML j'avais deux choix...

Voici mon code :
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <iostream>

using namespace sf;


int main()
{
    RenderWindow app(VideoMode(800, 600, 32), "Ma premiere fenetre SFML ! ");

    // Boucle principale
    while (app.isOpen())
    {
        Event event;

        while (app.pollEvent(event))
        {
            if (event.type == Event::Closed)
                app.close();
        }

        // Remplissage de l'écran (couleur noire par défaut)
        app.clear();

        // Affichage de la fenêtre à l'écran
        app.display();
    }
    return EXIT_SUCCESS;
}
 

J'avoue que à je commence vraiment à désespérer...

Merci d'avance pour votre aide.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compilation statique SFML 2
« Réponse #1 le: Avril 07, 2012, 05:14:43 pm »
Il faut définir SFML_STATIC dans les options préprocesseur.
Laurent Gomila - SFML developer

l0

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Compilation statique SFML 2
« Réponse #2 le: Avril 07, 2012, 06:06:37 pm »
J'ai peur de ne pas bien comprendre j'ai essayé de mettre "SFML_STATIC" dans "#defines","Other options","Pre/post Build steps", et j'ai même essayé de le mettre précédé d'un "#" dans mon code source mais sans succès ><

PS :

J'ai parfois eu un "It seems that this project has not built it yet. Do you want to build it now ?"...

Je désespère un peu  :'(

EDIT :

Après avoir tout recompilé ("Rebuild" dans Code Blocks) avec "SFML_STATIC" dans "#define" ça marche !!!
Merci beaucoup  ;)
« Modifié: Avril 07, 2012, 06:09:14 pm par l0 »

Koryushin

  • Jr. Member
  • **
  • Messages: 93
    • Voir le profil
Re : Compilation statique SFML 2
« Réponse #3 le: Avril 07, 2012, 08:15:17 pm »
Je connais pas codeblocks j'utilise notepad++ et msys/mingw. Du coup pour compiler en statique je rajoute dans mon makfile -DSFML_STATIC pour les options du linker.

Je pense qu'il doit y a avoir la même chose pour codeblocks.

Edit: j'ai installé codeblocks pour voir et je pense que c'est dans:
settings > compiler & debugger > linker settings de manière à pouvoir définir cette varaible(/constante?) à la compilation.
« Modifié: Avril 07, 2012, 08:22:47 pm par Koryushin »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compilation statique SFML 2
« Réponse #4 le: Avril 07, 2012, 08:28:05 pm »
Citer
j'ai installé codeblocks pour voir et je pense que c'est dans:
settings > compiler & debugger > linker settings de manière à pouvoir définir cette varaible(/constante?) à la compilation.
Non non, c'est bien comme il a dit, dans "#defines" (faut bien lire les posts jusqu'à la fin).

Y aucune chance pour que ce que tu définis dans "linker" ait un impact sur la compilation ;)
Laurent Gomila - SFML developer