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

 C++ Discussion :

Portage de linux vers windows d'une bibliothèque


Sujet :

C++

  1. #21
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 391
    Points
    11 391
    Billets dans le blog
    11
    Par défaut
    Exactement de la même façon, avec Code::blocks
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  2. #22
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 46
    Points : 0
    Points
    0
    Par défaut
    si le vous plait est ce que vous n'avez pas des tutoriels pour moi sur gdb ou bien comment travailler avec debugger sur QtCreator , par ce que apparemment sont les outils les plus recommandé pour du debug sous linux

    autre question est ce que l'architecture de la mémoire est différente que celle de Windows ( c est difficile à expliquer mais je veux dire pour les registre ,les octets du rang plus fort sont pas les plus faible sur win et vise versa ""

  3. #23
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 391
    Points
    11 391
    Billets dans le blog
    11
    Par défaut
    Pour le debug avec QtCreator je ne peux pas t'aider, par contre pour gdb Google est ton ami ^^ (je suis tombé sur ça à ma première recherche http://brouits.free.fr/doc/gdb_howto.html).
    Au niveau de l'architecture, c'est essentiellement le système qui va avoir ces différences, pas l'os donc il faut d'abord que tu te renseignes sur l'endianness des 2 machines qui te servent pour tes tests.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  4. #24
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Tu peux installer code:block sous linux aussi, ainsi tu pourras comparer plus aisément le comportement sous windows et linux

  5. #25
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 46
    Points : 0
    Points
    0
    Par défaut
    oui je l'ai déjà installé , au debut il fonctionnait bien mais là je n'arrive même pas à le lancer , il démarre et après il se coupe a chaque fois ,
    je doute si c est a cause de la version virtuel de Ubunto , mais bon comme j'ai dit au debut il marchait bien

  6. #26
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Perso, je le fais tourner sous vmware Ubuntu sans aucun soucie, mais je n'utilise pas la version svn 10.0 mais l'ancienne 8.02 je crois.
    Mais à priori, la virtualisation n'a rien à voir là dedans.

  7. #27
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    As-tu réglé le compilateur pour que le niveau d'avertissement soit maximal ?

  8. #28
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 46
    Points : 0
    Points
    0
    Par défaut
    Non , comment faire ?

  9. #29
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 391
    Points
    11 391
    Billets dans le blog
    11
    Par défaut
    ajoute -Wall à ta ligne de compilation dans le makefile
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  10. #30
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 46
    Points : 0
    Points
    0
    Par défaut
    Bonjour
    je travail toujours sur le même sujet de portage , j ai commencé le débogage sur les 2 plateforme
    et là j'ai remarqué que sur le même bloc , je n'ai pas les même valeurs sur certain objets ou bien variables , sur linux comme sur Windows.
    D'autre part quand je recompile sur Windows j'obtiens chaque fois des nouveaux valeurs comme si je travail avec des nouveaux arguments ou bien des nouveaux photos
    alors que sous Linux le comportement est normale et sur chaque compilation j'obtiens les même valeur.

    Ce que j'ai pu remarqué aussi , c'est surtout les variables en hexadécimale qui posent des problèmes et ce que je crois encore pire:sous linux ils sont sur 32 bit(8 caractères hexa) et sous windows ils sont sur 24 bit

    si le vous plait , est qu'il y quelqu'un qui a une explication

    NB: j'ai enregistré les résultats du debogage sur les deux système pour qu'on puisse mieux comparer , mais je ne sais pas comment faire pour l'importer sur ce forum ?

  11. #31
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 46
    Points : 0
    Points
    0
    Par défaut
    j'ai creusé un peu dans le code et j'ai trouvé un fichier qui a utilisé des instructions spécifiques à l'architecture comme vous l'avez signalé .
    je donne juste un peti exemple par ce qu'il y en a beaucoup et que j'ai rien compris ce qu'il veut faire
    -je n'ai pas compris aussi votre question "La gestion des noms des fichiers est différentes entre windows et linux"
    -d'autre parts la taille de certains variables est différente sur les 2 systemes
    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
     
    #ifdef ARCH_X86
                static mmx_t mmx_ffffffff={0xffffffffffffffffull};
                movq_m2r (mmx_ffffffff,mm0);
                movq_m2r (mmx_ffffffff,mm1);
                switch (BorderSize) {
                    case 1: psllq_i2r (8,mm0);  psrlq_i2r (8,mm1);  break;
                    case 2: psllq_i2r (16,mm0); psrlq_i2r (16,mm1); break;
                    case 3: psllq_i2r (24,mm0); psrlq_i2r (24,mm1); break;
                    case 4: psllq_i2r (32,mm0); psrlq_i2r (32,mm1); break;
                    case 5: psllq_i2r (40,mm0); psrlq_i2r (40,mm1); break;
                    case 6: psllq_i2r (48,mm0); psrlq_i2r (48,mm1); break;
                    case 7: psllq_i2r (56,mm0); psrlq_i2r (56,mm1); break;
                };
                unsigned char *OutLeft= yuv, *OutRight= yuv+x__-8;
                for (int yy= y__; yy; yy--)
                {
                    movq_m2r   (*OutLeft,mm2);
                    movq_m2r   (*OutRight,mm3);
                    pand_r2r   (mm0,mm2);
                    pand_r2r   (mm1,mm3);
                    #ifdef __WITH_MOVNTQ__
                    movntq_r2m (mm2,*OutLeft);
                    movntq_r2m (mm3,*OutRight);
                    #else
                    movq_r2m (mm2,*OutLeft);
                    movq_r2m (mm3,*OutRight);
                    #endif
                    OutLeft+=  x__;
                    OutRight+= x__;
                };
                Memms();
            #endif

  12. #32
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 46
    Points : 0
    Points
    0
    Par défaut
    d'autre part pour mieux comprendre je vais essayer de faire un petit exemple
    [code]
    #include "MCharImage.h"
    #include "MDetecteur.h"
    #include "MListePI.h"
    //#include "MListeCouples.h"
    #include "MUtils.h"
    using namespace std;
    using namespace local_vis_eric;
    int main (int argc,char** argv)
    {
    if (argc==3)
    {
    //Ouverture des images
    cout << "ouverture des images" << endl;
    MCharImage Image1,Image2; //raz
    Image1.Load(argv[1]);
    ................
    }
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
    int IsColored= 0;
      //ifstream Image(PpmOrPgm); // créer un flot d'entrée associé à un fichier
      ifstream Image(PpmOrPgm,ios::in); //  ajouté
      if (Image.bad())                                     //** test la valeur de badbit pour savoir si le flot est dans un état irrécupérable
        return 0;
      char C;                   //**  Image.get() extrait un caractère du flot d'entrée et en renvoie la valeur (sous forme d'un entier) ; fournit EOF en cas de fin de fichier
      while ((C = Image.get()) == '#') { do C = Image.get(); while (C != '\n'); };
      Image.putback(C);         //** Le caractère passé en paramètre de cette fonction est ajouté à la fin du flux fonctionne correctement, le caractère réinséré doit être le dernier caractère lu,
     
      char Tmp[256];
      Image.get(Tmp, 256, '\n'); //**extrait 255 caractères du flot et les place à l'adresse Tmp (le tampon). La lecture s'arrête éventuellement après le délimiteur s'il est rencontré.
      Image.get();
      if (!strcmp(Tmp, "P5"))                            IsColored= 0;
      else if (!strcmp(Tmp, "P6") || !strcmp(Tmp, "P3")) IsColored= 1;
      else return 0;
     
      while ((C = Image.get()) == '#') { do C = Image.get(); while (C != '\n'); };
      Image.putback(C);
     
      int xx, yy, zz;
      Image >> xx >> yy >> zz;
      if ((xx <= 0) || (yy <= 0) || (zz!= 255 && zz!= 254))
        return 0;
      SetSize(xx,yy);
      Image.get();
     
      int L= x__*y__;      // X__=xx  y__=yy
      if (!IsColored)
      {
        Image.read((char*)yuv, L);
      }
      else if (!strcmp(Tmp, "P6"))
      { // color binary
        char* Tmp2= new char[3*L];
        Image.read(Tmp2, 3*L);
        for (int i= 0; i< L; i++)
          yuv[i]= Tmp2[3*i+1];
        delete[] Tmp2;
      }
      else if (!strcmp(Tmp, "P3"))
      { // color ascii
        int R, G, B;
        for (int i= 0; i< L; i++) {
          Image >> R >> G >> B;
          yuv[i]= G;
        };
      };
      return 1;
    }
    après voila le résultat que j'ai eu pour le même objet sur les 2 plateformes :
    -sous Windows
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    x__=1024
    y__=768
      yuv = 0x2e0030 "\f\f\r\016\r\017\v\016\016\r\r\016\017\020\016\020\020\020\020\021\022\022\022\024\025\024\024\025\025\025\026\026\027\026\027\027\027\027\030\030\031\032\031"
    - sous Linux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (gdb) print Image1
    $1 = {x__ = 1024, y__ = 768, 
      yuv = 0xb7f2b010 "\f\f\r\016\r\017\v\016\016\r\r\016\017\020\016\020\020\020\020\021\022\022\022\024\025\024\024\025\025\025\026\026\027\026\027\027\027\027\030\030\031\032\031\032\032\033\033\033\033\034\034\034\034\034\033\036\034\035\036\037\037\037\037 \037\037\036\037\036\037\036\036 \037\037\037\036\036\"#\"!$%#\"\"!#\"\"\"##\"\"$%&\"! \037   \"\"\..., ReadOnly = false}

Discussions similaires

  1. Porter une application de Linux vers Windows
    Par EricPellegrini dans le forum Choisir un environnement de développement
    Réponses: 1
    Dernier message: 25/02/2014, 00h31
  2. debogage et portage d'une biblio de linux vers windows
    Par shadowless dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2011, 09h08
  3. Problème portage code Linux vers Windows
    Par scary dans le forum Windows
    Réponses: 14
    Dernier message: 11/01/2010, 17h56
  4. problème portage ioctl socket Linux vers Windows
    Par progfou dans le forum Réseau
    Réponses: 19
    Dernier message: 06/10/2009, 19h44
  5. Problème de portage Linux vers Windows, wxwidgets
    Par zoom* dans le forum wxWidgets
    Réponses: 6
    Dernier message: 22/07/2008, 09h59

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