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

Autres éditeurs Discussion :

communication entre msys/mingw


Sujet :

Autres éditeurs

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 28
    Points
    28
    Par défaut communication entre msys/mingw
    bonjour
    dans une etape de mon projet j'ai decider de travailler avec les outils de compilation msys/mingw.en fait il existe une relation et une communication entre les deux outils,en effet dans la fenetre shell du msys je relance la commande "make" pour un fichier contenant une petite application,cela permet de generer un fichier binaire .elf .apres de la meme maniere je lance la comande "make" pour un fichier ecrit en C et qui specifie les caracteristiques et l'architecture d'une plateforme contenant un certain nbre de processers,memoires....cela permet de creer le fichier .exe de cette plateforme.dans une troisieme etape je charge le fichier application.elf dans la memoire de la plateforme et cela permet de simuler cette plateforme avec l'application ecrite.ma question ici est de connaitre pourquoi le fichier application.elf n'est fonctionnel qu'avec la plateforme executé ?c'est adire si je charge ce fichier .elf dans la memoire d'une autre plateforme ca ne donne aucun resultat.par contre le fichier application.c je peut le compiler dans une autre plateforme et ca sera fonctionnelle.donc plus precisement qu'est ce qui rend le fichier.elf assez specifique pour une plateforme donnée?
    d'autre part je comprend pas la communication qui se fait entre le msys et le mingw c'est à dire lorsque je lance une commande dans le shell de msys comment se fait l'appel aux bibliotheques specifiques par le mingw.plus precisement comment se fait la communication entre les deux.
    en fait ce sont des questions de base pour que je puisse manipuler mon projet et malheureusement je trouve pas dans le net des reponses precises à ces questions.
    celui qui peut m'eclaircir un peu le probleme ou qui connait des site web qui expliquent ces point ,merci de me les faire partager.
    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Si je reformule, je dirais que ta plateforme est une machine virtuelle capable d'émuler différentes architectures. A chacune de ces architectures correspond un langage machine. Quand tu compiles ton fichier C, tu génères un binaire dans ce langage machine. Le format .elf n'est qu'un conteneur, ce n'est pas pour ça que le code binaire qu'il contient est compatible avec toutes les architectures. C'est un peu à l'image d'une partition NTFS de Windows qui peut contenir un exécutable Linux mais seul Linux pourra l'exécuter.

    mingw est un ensemble d'outils (GNU) permettant de compiler de manière native pour Windows. msys est juste un environnement minimaliste permettant d'utiliser mingw (Minimal SYStem). A travers cet environnement, correctement configuré, tu utilises le compilateur de mingw (gcc-mingw) pour générer un exécutable Windows. Dans les faits, tu pourrais utiliser un autre compilateur avec msys. Et tu pourrais tout aussi bien lancer le compilateur mingw dans une console de Windows, si tu configures bien les variables d'environnement...

    Pour résumer...
    Tu compiles ta plate-forme comme un binaire pour Windows avec mingw.
    Tu compiles ton source C comme un binaire pour cette plate-forme (c'est là que tu ne dis pas quel compilateur tu utilises).
    Tu lances ta plate-forme sous Windows.
    Tu lances ton binaire .elf sous cette plate-forme.

    J'espère que je ne trompe pas sur l'interprétation de cette plate-forme et que cette réponse te conviendra.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 28
    Points
    28
    Par défaut
    bonjour;
    merci pour votre réponse ;en fait ton resonnement est juste à 80%.
    en effet,la plateforme dont je parle ce n'est qu'une plateforme de composants logiciel/materiels c'est à dire qu'il s'agit d'un ensemble de processeurs,memoires,peripheriques...dans laquelle je doit executer une application.
    donc la description de la plateforme est decrite dans un fichier plateforme.c que je compile avec mingw pour obtenir plateforme.exe
    et l'application test est decrite dans un fichier application.c que je compile egalement avec mingw pour obtenir le fichier application.elf.
    en fait c'est ici ma question;ce fichier .elf ,je ne peut pas l'executer que avec la plateforme compilé ,par contre le fichier application.c peut etre compilé et executé avec d'autre plateforme.c à condition qu'ils doivent etre compilés ensemble.
    donc je reformule ma question qu'est ce qui rend le fichier application.elf aussi particulier que ça ,c'est à dire compatible que avec la plateforme compilé avec lui malgré que le fichier application.c ne contient aucune reference à la plateforme cible,c'est à dire qu'il n'y a aucune indication dans le fichier application.c sur la plateforme ou je vais executer cette application.
    merci d'avance

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    qu'est ce qui rend le fichier application.elf aussi particulier que ça ,c'est à dire compatible que avec la plateforme compilé avec lui malgré que le fichier application.c ne contient aucune reference à la plateforme cible,c'est à dire qu'il n'y a aucune indication dans le fichier application.c sur la plateforme ou je vais executer cette application.
    J'ai l'impression que tu donnes toi-même la réponse.
    le fichier application.c peut etre compilé et executé avec d'autre plateforme.c à condition qu'ils doivent etre compilés ensemble
    Après, je ne connais pas ta plate-forme, je ne sais pas comment tu compiles ton application avec mingw. Difficile de t'en dire plus...

Discussions similaires

  1. communication entre deux executables
    Par semenzato dans le forum MFC
    Réponses: 8
    Dernier message: 13/04/2005, 22h19
  2. Lecture standard et communication entre processus!
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/07/2003, 16h37
  3. Communication entre processus
    Par markopolo dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/06/2003, 16h21
  4. Réponses: 5
    Dernier message: 25/03/2003, 19h43
  5. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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