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

VC++ .NET Discussion :

Porter programme C++ (lib SDl, compilé sous cmake) sous windows(visual c++)


Sujet :

VC++ .NET

  1. #1
    Membre actif Avatar de apicard3
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 60
    Par défaut Porter programme C++ (lib SDl, compilé sous cmake) sous windows(visual c++)
    Bonjour a tous,

    Etant en licence informatique (Besancon ) j'avais comme projet la création d'un jeu s'inspirant du célèbre doodle jump, en C++ et avec les lib SDL (SDL, SDL_ttf, SDL_mixer).
    J'ai donc créé ce jeu, un bon ptit jeu!

    Maitenant, j'aimerais le porter sous windows pour pouvoir le distribuer à mes amis
    On m'a parlé de cmake pour le porter plus facilement, j'ai donc compiler sous cmake sans probleme.
    J'ai également installé visual c++ express sous windows, et telechargé les lib SDL que j'ai mise dans visual.
    Que dois-je faire maintenant? Peut-on executer le jeu (compiler cmake) sous windows? Dois-je le recompiler avant? Sous cmake, ou repartir du code source dans visual? Comment creer un point exe? etc

    Merci!

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Salut,

    En regardant vite fait ce tutoriel.
    Je remarque que CMake est un générateur de makefile et non pas un compilateur.

    Donc, a priori, tu dois exécuter CMake pour te faire un projet Visual, puis compiler ton jeu avec Visual.

  3. #3
    Membre actif Avatar de apicard3
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 60
    Par défaut
    Merci de ta réponse

    C'est vrai qu'il faut recompiler sous windows avec cmake, mais c'est bien plu dur que sous unix quand on ne sait pas.
    La commande (presque) unique de linux est: cmake . -G"Unix Makefile"
    La il faut remplacer "" par le nom de ton compilateur (pas facile quand on connais pas) et ton IDE (sous visual il y'en a un pour toute les versions)

    Etant sous visual c++ 2008 express, la commande est: cmake . -G"Visual 09 2008" (pas tres logique)

    Maintenant le fichier txt qui sert a la création du makefile (CMakeLists) demande les chemin des libs SDL. La fonction findSDL sous linux marche mais sous windows elle ne trouve rien, puisque les libs sont dans l'IDE.
    Comment faire?

    merci

  4. #4
    Membre actif Avatar de apicard3
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 60
    Par défaut
    Je me mon fichier CMakeLists qui marche sous linux (car j'ai les lib SDL, SDL_mixer et SDL_ttf), si vous avez une solution pour rechercher les libs, ou les trouver automatiquement:

    Code cmake : 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
    #-------------------------------------------
    cmake_minimum_required(VERSION 2.6)
     
    # Nom du projet
    project(doodle)
     
    # Déclaration de l'exécutable
    add_executable(
        jeu
        menu.cpp
        jeu.h
        jeu.cpp
    )
     
    FIND_PACKAGE(SDL REQUIRED)
    FIND_PACKAGE(SDL_ttf REQUIRED)
    FIND_PACKAGE(SDL_mixer REQUIRED)
     
    include_directories(${SDL_INCLUDE_DIR}
    		${SDLTTF_INCLUDE_DIR}
    		${SDLMIXER_INCLUDE_DIR})
     
    target_link_libraries(
        jeu
        ${SDL_LIBRARY}
        ${SDLTTF_LIBRARY}
        ${SDLMIXER_LIBRARY}
    )

  5. #5
    Membre actif Avatar de apicard3
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 60
    Par défaut Probleme résolu! merci
    Finit la cross compilation, ou la génération de makefile avec Cmake, je suis simplement passé par visual c++ express
    J'ai créer un projet à partir de code source déjà existant, puis j'ai inserer les .h de SDL, SDL_ttf et SDL_mixer dans le dossier include de visual (VC/include/SDL). Un fois fait, il faut ajouter les lib au projet, c'est a dire:
    -clik droit sur projet, propriété-> propriété de configuration-> editeur de lien -> entrée, puis ajouter SDL_main.lib, SDL.lib, SDL_ttf.lib, SDL_mixer.lib dans la premiere ligne (un truc genre ajouter nouvelle lib extérieur). Il faut donc que ces fichier soit donc le répertoire visual studio/VC/lib. (On télécharge les .h, .lib et .dll sur le site SDL)

    Apres vient tout les problème lié au bibli Windows comme unistd.. a chercher
    puis générer projet, compiler et executer(ctrl + f5). Si ça marche on vient de compiler en debug, on voit apparaître un dossier debug dans notre dossier de projet avec un exécutable dedans. On distribue pas un projet en debug, mais en release. donc propriété du projet, et on met release en haut. On recompile, le tour est joué, il suffit de mettre tous les .dll dans le dossier release pour pouvoir exécuter le projet en double clickant sur l’exécutable.


    J'ai toutefois encore deux petit problème a régler, mais je devrait me débrouiller en cherchant. 1- Windows aime pas les fonction strcat et fprintf car on peux rentrer du code malicieux dans les chaîne, et avast gueule à l’exécution.
    2- Mon programme compilé n'a pas de son, j'utilise SDL_mixer, le son marche sur linux et je n'ai pas modifié le code source. Aucune erreur est détectée, et les libs sont bien là. Ce n'est pas mon ordi le problème, peut être visual c++?

    Je mettrai surement un lien de téléchargement quand il sera prêt.
    Enfin voila, problème résolu, merci !

  6. #6
    Membre actif Avatar de apicard3
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 60
    Par défaut Petit up sur le projet
    Si quelqu'un a une idée sur le fait que j'ai pas de son lors de l'éxecution de mon programme. J'utilise SDL_mixer, avec des sons au format ogg et mp3, et lors de la compilation je n'ai pas d'erreur.
    De plus les son de mon programme inchangé marche sur linux...
    Je suis un peu perdu, y'a t'il des configuration a effectuer sous visual?

  7. #7
    Membre actif Avatar de apicard3
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 60
    Par défaut
    C'est bon j'ai trouvé, j'avais pas les bonne lib dans mon dossier (.dll), pourtant aucun message d'erreur s'affichait..
    Je reste bloqué des jours et des jours mais dès que je pose un message je trouve direct la solution

    Merci quand meme

  8. #8
    Membre actif Avatar de apicard3
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 60
    Par défaut
    Voici le lien de la page facebook ou l'on peut le télécharger le doodle jump librement ;

    https://www.facebook.com/SpaceMouton

Discussions similaires

  1. Compiler un programme sous Mac pour Windows
    Par Celadon dans le forum Qt
    Réponses: 6
    Dernier message: 04/12/2011, 17h32
  2. [Kylix] Porter un programme Windows sous Linux
    Par bryce426 dans le forum EDI
    Réponses: 5
    Dernier message: 19/02/2010, 13h29
  3. [MEX] Pb de compilation de mexfile sous real time windows target
    Par KolAr dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/07/2009, 11h48
  4. {SDL} compilation projet SDL sous windows.
    Par LeFlou dans le forum SDL
    Réponses: 12
    Dernier message: 14/11/2007, 15h50
  5. Compilé avec VC++ sous vista avec sdl (bug)
    Par Narkoleptik dans le forum Visual C++
    Réponses: 3
    Dernier message: 06/03/2007, 18h47

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