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

SDL Discussion :

SDL et Unix. Vos expériences de make install


Sujet :

SDL

  1. #1
    Invité
    Invité(e)
    Par défaut SDL et Unix. Vos expériences de make install
    Bonsoir,

    J'ai fait plusieurs programmes avec SDL. Sous windows via InnoSetup je me suis fait des programmes d'installation qui fonctionnent bien.

    Sous unix (et en particulier FreeBSD puisque je suis là dessus maintenant), j'aurais une question qui est autant sur SDL que sur les autres systemes que windows (et en particulier les Unix).

    Déjà, selon vous, quel est la bonne pratique pour installer un logiciel qui fait appel à des données. Par exemple pour un jeu avec SDL.

    Pour l'instant je met mes images dans un sous dossier "data" .
    Ce qui marche bien sur tous les systèmes. De plus pour l'installation sur windows ça fonctionne.

    Dans le dossier du logiciel on a cette arborescence :

    Logiciel\
    --------Programme
    --------data\
    --------data\image...


    Pour l'installation sur unix on a quelque chose du style :

    /usr/locale/bin/Programme
    et les données dans
    /usr/locale/share/Logiciel/data/image

    Seulement si je lance le Programme. Quand il doit charger une image via un SDL_IMGLoad(data/image.png) il m'envoie petre en me disant :
    Impossible de charger "data/image.png"

    Ma question vient (enfin)

    Y'a t'il une façon d'installer qui permet de faire le lien ? (désolé si cette question est plus porté system)

    Sinon comment faites vous pour ce genre de problème ?
    quelchose du style
    if(WIN)
    SDL_IMGLoad(data/image.png)
    else
    SDL_IMGLoad(/usr/local/share/Logiciel/data/image.png)

    ou une autre façon ?

    Merci, et encore désolé si la question concerne un peu plus le système que la SDL pur.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    Ta question est forte intéressante, car tu cherche à faire comme les autres jeux que l'on peut récupérer pour UNIX.
    Soit tu ne fais pas comme tout le monde, et lorsque tu distribue ton jeu, l'utilisateur UNIXien doit avoir un minimum de connaissance, faire un make et lancer le jeu.
    Soit tu peux tricher en faisant un lien symbolique ( commande ln -s )
    ( C'est une sorte de raccourcie, qui permettra de faire croire au système que le dossier data se trouve dans le même dossier que celui de l'exécutable , mais en fait non.
    Du coup je te conseille d'aller voir le manuel pour la commande ln.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'avais proposé le sujet au délestage puisque posé sur le forum unix également, mais on va répondre ici.

    Alors oui, c'est exactement ce que je veux faire. Pour la commande ln j'y ai pensé et je l'ai utilisé (sans doute mal) mais cela ne fonctionne pas, du moins pas comme il faut. Je m'explique.

    On a le programme dans /usr/local/bin/ et les données dans /usr/locales/share/Logiciel/

    si je fait ln -s j'ai bien un dossier data dans /urs/local/bin mais ça ne me résout pas le problème car le programme quand je le lance à partir de n'importe où me dit qu'il ne trouve pas "data/image.png"
    en revanche si je suis dans le dossier /usr/local/bin/ le programme se lance correctement car le dossier est bien à côté du programme...

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Euh, pardon pour l'histoire du délestage , et du double post ... :s

    Je suis d'accord avec toi , que si tu lance ton programme à partir d'autre part que de l'endroit où il y a le lien , cela ne marchera pas.
    Par contre , c'est bizarre que si tu fais une installation complète que tu laisse l'utilisateur trimbaler l'exécutable ou il veut.
    Ce que je veux dire, c'est qu'au pire, l'utilisateur à un raccourci sur le fichier du /usr/local/bin
    et donc être exécuté comme si il était dans /usr/local/bin ...

    Par contre en aucun cas il doit y avoir le dossier de data à coté de l'executable, mais le raccourci fait croire que si.

    ( Pour verifier ou pointe un raccourci , il faut faire un ls -l dessus ( il apparraissent en bleu clair ) et le nom est suivi par une flèche pour montrer l'objet pointer.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Alors pour le dossier data c'est bien un raccourci, je me suis sans doute mal exprimé.

    un ls -l me donne bien :
    "data -> /usr/local/share/Logiciel/data"

    je pense avoir trouvé une solution au niveau du code.

    si l'on veut lancer le programme sans l'installer, les images seront dans le répertoire data à côté de l'executable (pour n'importe quel système). Si l'on veut l'installer sur windows c'est pareil donc pas de souci. Pour les unix on regarde dans /usr/local/share/Logiciel/data/

    Pour le score (accès en lecture/écriture) il faut le créer par l'utilisateur sur windows dans Mes Documents (ou autre chose du style, je ne m'en souviens plus exactement) et sur unix dans ~/.Logiciel/score.txt

    Pour MacOS ? Amiga ? Atari ? etc... ?

    C'est faisable, ça doit fonctionner, mais est-ce qu'il n'y a pas une solution "plus simple" et qui fonctionne sur toutes les plateformes ?

  6. #6
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Je suis d'accord avec toi , que si tu lance ton programme à partir d'autre part que de l'endroit où il y a le lien , cela ne marchera pas.
    Par contre , c'est bizarre que si tu fais une installation complète que tu laisse l'utilisateur trimbaler l'exécutable ou il veut.
    En fait ce n'est pas une situation hors du commun. Si je suis dans mon répertoire personnel, je dois pouvoir appeler directement "logiciel" car il est dans le PATH. Le répertoire courant par rapport auquel se fera toute recherche de chemin relatif sera alors le mien.

    Normalement, pour justement savoir où est le programme, celui-ci doit recevoir en premier argument la commande qui l'a lancé, avec un chemin d'accès absolu à ce qu'il me semble. En récupérant ce chemin, ses données devraient pouvoir se trouver dans "[emplacement de l'éxécutable]/../share/logiciel".

    Citation Envoyé par _-Slash-_ Voir le message
    Pour MacOS ? Amiga ? Atari ? etc... ?

    C'est faisable, ça doit fonctionner, mais est-ce qu'il n'y a pas une solution "plus simple" et qui fonctionne sur toutes les plateformes ?
    Il faudrait voir ce que préconise la LSB à ce sujet, ça devrait donner des idées au moins pour les Linux. Au delà, comme il faut recompiler pour chaque OS, des "#define" pourraient servir. Sinon sous windows (et peut-être tous les OS, il faudrait voir), le coup de l'argument doit aussi être valable, donc il y a moyen de reproduire la même répartition que sous Linux dans le répertoire d'installation ("bin", "share/logiciel").

    Ou tout simplement chercher à plusieurs endroits (si on ne trouve pas dans "[rep de l'éxécutable]/data", on cherche "[rep de l'éxécutable]/../share/logiciel").

  7. #7
    Invité
    Invité(e)
    Par défaut
    Je pense m'orienter pour la recherche à plusieurs endroits c'est ce qui me parait (avec mes connaissances) le plus simples à mettre en place. JE vais faire les tests dans la semaine.

    Sivrît : Qu'est-ce que LSB ?

  8. #8
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Citation Envoyé par _-Slash-_ Voir le message
    Sivrît : Qu'est-ce que LSB ?
    Linux Standard Base. Ce sont des conventions pour rendre les 36000 et des brouettes distributions linux relativement compatibles. Je viens de jeter un oeil dedans, et il n'y a à ce qu'il me semble rien sur le sujet Juste un "les RPM c'est bien".

  9. #9
    Invité
    Invité(e)
    Par défaut
    Ok merci pour l'info.

    Là je n'ai pas le code de mon soft que je veux installer, mais je vais faire des tests sur différentes machines pour voir ce que cela peut donner.

    Je peux tester Windows (XP/Vista), FreeBSD.

    Peut on installer un logiciel sur Ubuntu en Live-CD ?

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Citation Envoyé par _-Slash-_ Voir le message
    Peut on installer un logiciel sur Ubuntu en Live-CD ?
    Oui normalement, mais il faut faire attention car tu n'aura pas toute les dépendances d'installer de base et peut être pas un environnement pour compiler.
    ( Et bien sur, tout est temporaire )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Oui normalement, mais il faut faire attention car tu n'aura pas toute les dépendances d'installer de base et peut être pas un environnement pour compiler.
    ( Et bien sur, tout est temporaire )
    j'installerai tout ce dont j'ai besoin pour faire les tests et je vous tiendrai au courant.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonsoir, je viens aux nouvelles.

    Voilà ce qui fonctionne sur FreeBSD (et normalement sur d'autres unix. A vérifier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #if(!WIN32)
            police = TTF_OpenFont("/usr/local/share/Program/data/Police.ttf", 12);
            if (police==NULL)
            {
                fprintf(stderr, "Impossible de charger la police.\n");
                exit(0);
            }
    #else
            fprintf(stderr, "Impossible de charger la police.\n");
            exit(0);
    #endif
        }
    Il cherche d'abord dans le dossier d'exécution (cas où il n'y a pas d'install sur unix)
    Puis on cherche suivant le système ou ça se trouve ici /usr/local/share.

    et ça fonctionne aussi bien avec que sans install

Discussions similaires

  1. La publicité sur site Web : Vos expériences ?
    Par Mike85 dans le forum Publicité
    Réponses: 30
    Dernier message: 04/01/2018, 15h31
  2. Outil d'analyse de fréquentation : vos expériences...
    Par rozwel dans le forum Statistiques
    Réponses: 9
    Dernier message: 04/07/2008, 21h29
  3. Make Make install
    Par medben dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 26/09/2007, 14h30
  4. Vos avis ? Vos expériences ?
    Par rozwel dans le forum Ruby
    Réponses: 17
    Dernier message: 16/11/2006, 21h48
  5. Yast et make install idem ?
    Par gl0be dans le forum SUSE
    Réponses: 2
    Dernier message: 27/07/2006, 08h16

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