Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment différencier de OS ?

Dans une condition.

Sujet résolu
    21 août 2007 à 17:15:17

    Bonjours je suis en train de coder un programme et j'aimerai qu'il soit multi-plateforme.
    Mais j'utilise la fonction systéme à divers moment donc j'aurais besoin d'une condition qui me permette de faire.
    1. variable OS;
    2. switch (OS):
    3. case Window
    4. system ("ma_comande");
    5. case Linux
    6. system ("ma_comande");
    7. [...]
    8. break;


    Voila merci.
    • Partager sur Facebook
    • Partager sur Twitter
      21 août 2007 à 17:19:51

      1. #define WIN32
      2. #ifdef WIN32
      3. #endif
      4. #ifdef LINUX
      5. #endif

      Edit: y'a aussi une fonction pour savoir ça, cherche sur google ou developpez.com.
      • Partager sur Facebook
      • Partager sur Twitter
        21 août 2007 à 17:58:28

        Sur google je n'est réussi cas trouver de commande de shell qui font ça le probléme c'est queelle varie en fonction des OS par contre dans le morceau de code que tu m'as donnée je reconné le systéme d'anti inclusion infinie. Je ne comprend ni commment l'adapter à une condition ni comment cela peut tout simplement fonctionner pourait ut éclairé ma lanterne s'il te plait ?
        • Partager sur Facebook
        • Partager sur Twitter
          21 août 2007 à 18:49:25

          simple... lorsque tu compile sur windows il y a un define WIN32... quand tu compile sous linux il y a un define LINUX... donc à la compilation seul le code nécessaire à chaque platforme est inclu...

          TU peux facilement mettre ton code spécifique à chaque plateforme dans une bibliothèque différente mais contenant toute les fonctions pareilles et compiler que le fichier source dont tu as besoin (avec un #ifdef WIN32 ou #ifdef LINUX ou tout autre dépendant de la plateforme).
          • Partager sur Facebook
          • Partager sur Twitter
            21 août 2007 à 18:55:05

            Euh je crois avoir compris mais pourais tu me donner un bout de code comme exemple ?
            Et il ya un truc que je n'ai tjrs pas compris le compilateur sais si il faut qu'il mette WIN32 ou LINUX ?
            • Partager sur Facebook
            • Partager sur Twitter
              21 août 2007 à 19:07:59

              habituellement c'est prédéfini dans les options du compilateur ou du projet.

              fig 1 : specif_platforme.h
              1. #ifndef SPECIF_PLATFORME_H
              2. #define SPECIF_PLATFORME_H
              3. void AppelSystemBidon();
              4. #endif


              fig 2 : specif_win.cpp
              1. #ifdef WIN32
              2. #include "specif_platforme.h"
              3. void AppelSystemBidon()
              4. {
              5.     // code
              6. }
              7. #endif


              fig 3 : specif_linux.cpp
              1. #ifdef LINUX
              2. #include "specif_platforme.h"
              3. void AppelSystemBidon()
              4. {
              5.     // code
              6. }
              7. #endif
              • Partager sur Facebook
              • Partager sur Twitter
                21 août 2007 à 19:23:08

                Et avec tout ça j'aurais un logiciel qui marchera pour Window ou Linux (en fonction de l'éxécutable bien sur)
                et une derniére chose si je compile pour obtenir un soft.exe à partir de Linux en utilisant une modif de gpp cela vas causer un probléme ?

                En tout cas merci pour tout !
                • Partager sur Facebook
                • Partager sur Twitter
                  21 août 2007 à 19:29:55

                  Citation : Sword_99 -l-

                  Et avec tout ça j'aurais un logiciel qui marchera pour Window ou Linux (en fonction de l'éxécutable bien sur)
                  et une derniére chose si je compile pour obtenir un soft.exe à partir de Linux en utilisant une modif de gpp cela vas causer un probléme ?

                  En tout cas merci pour tout !


                  Non sa ne marchera pas. Faut compiler sous Windows pour windows et recompiler sous Linux pour un exécutable Linux.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 août 2007 à 23:09:56

                    Citation : [Kansuu]

                    Non sa ne marchera pas. Faut compiler sous Windows pour windows et recompiler sous Linux pour un exécutable Linux.


                    la cross compilation çà existe ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 août 2007 à 10:48:20

                      Oui mais ça ne marche pas toujours.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.

                      Comment différencier de OS ?

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown