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

MinGW Discussion :

Distribution minimale du compilateur g++ pour Windows


Sujet :

MinGW

  1. #1
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 140
    Points : 103
    Points
    103
    Par défaut Distribution minimale du compilateur g++ pour Windows
    Bonjour,

    Je suis en environnement Windows et j'ai besoin de distribuer, en interne à mon entité et sur des machines cibles Windows, un outil qui a besoin d'être compilé avant chaque exécution : suivant ce qui est représenté, du code c++ est généré et il faut le compiler pour l'exécuter.
    Hors je ne peux pas installer MinGW via MSYS2 sur les machines cibles. Je souhaite donc créer une 'distribution' minimale de g++ qui sera mise sur la machine cible et appelée par un script spécifique.
    J'ai donc tenté une approche pragmatique sur ma machine source : créer un dossier 'cmpl', un sous dossier 'bin' dans 'cmpl' et y coller g++.exe copier depuis MSYSY2/mingw32 (ou MSYS2/mingw64); ensuite ouvrir l'invite de commande Windows (MSYS2 n'est pas dans le PATH, donc pas de problème de liens connus vers l'installation MSYS2) et tenter de compiler un premier HelloWord avec ce g++.exe en mode verbeux, puis résoudre les liens manquants (des fichiers) en les incluant dans ce sous-dossier 'bin' ou des sous-dossiers nécessaires ('lib', 'include', 'i686-w64-mingw32'). Sauf que cette approche est longue, fastidieuse et parfois les messages ne donnent aucune information exploitable.

    Avez-vous donc une idée plus simple pour réaliser cela car d'une part je souhaite absolument éviter de fournir le dossier complet mingw32 ou mingw64 qui fait dans les 600-700Mo... ; d'autre part je ne peux pas faire installer MSYS2 sur les machines cibles.

    En vous remerciant.
    Mic

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Si mingw fait cette taille, c'est pour une bonne raison.

    Pourquoi devoir compiler à chaque utilisation?
    Pourquoi le faire avec mingw?

    Tu pourrais utiliser un fichier de données permettant de configurer un code général.
    Ou alors un système de DLL chargé pendant l'exécution.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 140
    Points : 103
    Points
    103
    Par défaut
    Merci ternel de ta réponse.

    Si mingw fait cette taille, c'est pour une bonne raison.
    Certes mais je n'ai besoin que du compilateur C++.
    J'avais réalisé le boulot il y a quelque temps (1,5 année environ) en le faisant à la main et ce qui me restait à la fin ne pesait qu'environ 50Mo.
    Je souhaite donc mettre à jour et pouvoir le faire aussi en version 32bits ; avec si possible une automatisation plus que manuelle.

    J'ai par exemple testé de n'installer que mingw32-g++ via pacman de MSYS2 mais ce paquet n'existe pas, il est inclus dans mingw32-gcc.

    Pourquoi devoir compiler à chaque utilisation?
    Car c'est du code généré à partir d'un modèle. Désolé de ne pas avoir été explicite pour cela.
    Pour des problématiques de performance d'exécution, du code C++ est généré puis compilé en local sur la machine de l'utilisateur.
    REMARQUE: je ne veux pas débattre du bien fondé de cette caractéristique de performance. C'est un choix qui a été fait il y a longtemps et pas par moi.

    Pourquoi le faire avec mingw?
    Car c'est le compilateur C++ que je maitrise le plus et que je sais installer facilement (mais uniquement pour le dev, pas pour la distribution).

    Tu pourrais utiliser un fichier de données permettant de configurer un code général.
    Ou alors un système de DLL chargé pendant l'exécution.
    C'est en partie ce qui est fait mais avec la contrainte dite plus haut de génération de code C++ à partir d'un modèle.

    Je te remercie pour ton aide.

Discussions similaires

  1. compilateur fortran pour windows vista
    Par feynman dans le forum Fortran
    Réponses: 12
    Dernier message: 03/12/2009, 12h00
  2. Un compilateur Linux pour Windows ?
    Par Kicker dans le forum Windows
    Réponses: 1
    Dernier message: 12/04/2008, 02h59
  3. [Fortran 77] Compilateur gratuit pour Windows
    Par feynman dans le forum Fortran
    Réponses: 4
    Dernier message: 19/11/2007, 11h11
  4. [Lustre] Compilateur gratuit pour Windows ?
    Par jdevelop dans le forum Autres langages
    Réponses: 2
    Dernier message: 17/09/2005, 22h02

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