IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

cross compilation MXE SFML


Sujet :

SFML

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut cross compilation MXE SFML
    J'utilise MXE comme base de développement. J'ai compiler toutes les applications et librairies nécessaires à mon projet.

    Mon programme fonctionne sous Linux.

    Il compile sous MXE mais gros problèmes d'édition de liens à la fin avec SFML.
    ............................
    /home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib/libsfml-window-s.a(JoystickImpl.cpp.obj):JoystickImpl.cpp:(.text+0x224c): undefined reference to `_imp__joyGetPosEx@8'
    /home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib/libsfml-window-s.a(JoystickImpl.cpp.obj):JoystickImpl.cpp:(.text+0x2d4d): undefined reference to `_imp__joyGetDevCapsW@12'
    /home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib/libsfml-window-s.a(JoystickImpl.cpp.obj):JoystickImpl.cpp:(.text+0x339f): undefined reference to `_imp__joyGetPosEx@8'
    /home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib/libsfml-system-s.a(SleepImpl.cpp.obj):SleepImpl.cpp:(.text+0x24): undefined reference to `_imp__timeGetDevCaps@8'
    /home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib/libsfml-system-s.a(SleepImpl.cpp.obj):SleepImpl.cpp:(.text+0x34): undefined reference to `_imp__timeBeginPeriod@4'
    /home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib/libsfml-system-s.a(SleepImpl.cpp.obj):SleepImpl.cpp:(.text+0x59): undefined reference to `_imp__timeEndPeriod@4'
    collect2: error: ld returned 1 exit status
    Makefile:13*: la recette pour la cible «*oscSpace3D*» a échouée
    make: *** [oscSpace3D] Erreur 1

    J'utilise ceci dans mon make

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        $(CC)  -std=c++11 -O3 oscSpace3D.cpp -o oscSpace3D.exe -DSFML_STATIC -L/home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib -lboost_filesystem-mt -lboost_system-mt  -lpng -lwinmm -lfreetype -lgdi32 -lopengl32 -lglu32  -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -llo -DGL_GLEXT_PROTOTYPES  -lpthread `pkg-config ` -lws2_32 -lwsock32 -liphlpapi
     
     make CROSS=i686-w64-mingw32.static-

    Boost et liblo passe très bien. Sfml est bien définie. Le programme compile mais le linker me jette.

    Je ne comprends pas.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    6 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 6 766
    Points : 31 011
    Points
    31 011
    Billets dans le blog
    4
    Par défaut
    Où se trouvent les libs SFML ? Probablement dans un dossier qu'il faut indiquer avec -L
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut C'est indiqué
    -L/home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib
    Mais ça ne fonctionne pas pour autant.

    J'ai testé ceci

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    	$(CC)  -std=c++11 -O3 oscSpace3D.cpp -o oscSpace3D.exe  -L/home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/lib -lboost_filesystem-mt -lboost_system-mt -llo -lpng -ljpeg -lfreetype -lwinmm  -lglew32s -lOpenAL32 -lopengl32 -lgdi32 -lglu32 -lsfml-graphics-s -lsfml-window-s -lsfml-system-s  -DGL_GLEXT_PROTOTYPES  -lpthread `$(PKG_CONFIG) sfml --cflags ` -lws2_32  -lwsock32  -liphlpapi

    avec
    PKG_CONFIG=$(CROSS)pkg-config

    qui me renvoir ceci :

    i686-w64-mingw32.static-pkg-config sfml --cflags
    -I/home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/include/freetype2 -DGLEW_STATIC -I/home/dominique/MXE/mxe/usr/i686-w64-mingw32.static/include/AL -DAL_LIBTYPE_STATIC -DSFML_STATIC

    pour aussi lier les librairies
    -lpng -ljpeg -lfreetype -lwinmm -lglew32s -lOpenAL32 -lopengl32 -lgdi32 -lglu32
    mais ça ne fonctionne toujours pas

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Résolu (partiellement)
    Voici les includes de mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #include <winsock2.h>
    #include <windows.h>
    #include <SFML/Graphics.hpp>
    #include <SFML/OpenGL.hpp>
    #include <iostream>
    #include <atomic>
    #include <fstream>
    #include <stdio.h>
    #include <stdexcept>
    #include <unistd.h>
    #include <dirent.h>
    #include <sstream>
    #include <locale>
    #include <iomanip>
    #include <stdlib.h>
    #define _USE_MATH_DEFINES
    #include <cmath>
    #include <vector>
    #include <list>
    #include <string>
    #include <boost/filesystem.hpp>
    #include <GL/gl.h>
    #include <GL/glu.h>
    #define GLM_ENABLE_EXPERIMENTAL
    #include <glm/glm.hpp>
    #include <glm/gtx/transform.hpp>
    #include <glm/gtc/type_ptr.hpp>
    #include <lo/lo.h>
    #include <lo/lo_cpp.h>
    #include <signal.h>
     
    #include "oscSpace3D.h"
     
    using namespace std;
    using namespace glm;
    Il faut ajouter ceci avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -lsfml -lpng -ljpeg -lfreetype -lwinmm  -lOpenAL32 -lopengl32 -lgdi32 -lglu32 -lglew32s
    et ne pas oublier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(PKG_CONFIG) freetype2 sfml glew openal --libs --cflags ` -lws2_32  -lwsock32  -liphlpapi -lz
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PKG_CONFIG=$(CROSS)pkg-config
    Et là, miracle ça fonctionne sous Wine.

    Un paradoxe : ça plante au démarrage sous windows7 au moment de la création de la première fenêtre.

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/04/2015, 17h05
  2. Réponses: 6
    Dernier message: 17/12/2008, 02h01
  3. Cross-compil pour MAC
    Par Ulmo dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 29/09/2006, 19h49
  4. Cross compil "ntohs"
    Par youte dans le forum Linux
    Réponses: 5
    Dernier message: 21/06/2006, 09h28
  5. cross compilation
    Par jowy dans le forum C++Builder
    Réponses: 11
    Dernier message: 26/08/2005, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo