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 :

option gcc pour rajouter des .h


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 31
    Par défaut option gcc pour rajouter des .h
    Bonjour,

    Je fais passer des fichiers sur un pre processing en utilisant gcc

    j'ai un dossier qui contient mais fichiers cpp ainsi que les .h correspondant

    seulement je ne veux pas inclure les .h systèmes pour des raisons

    et j'ai créer un fichier "monfichiercreer.h" dans lequel je met les macro les plus utiliser

    mon problème est que je désire avant de faire passer les fichiers dans un pre processing rajouter la ligne #include "monfichiercreer.h"
    seulement je voudrais ne pas toucher au fichier cpp de test et rajouter une ligne de commande que je lance avec le gcc pour que je puisse inclure dans tout les tests mon "monfichiercreer.h"

    merci d'avance de votre aide

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Si j'ai bien compris ce que tu demandes, tu peux préciser les fichier à insérer un à un dans la ligne de commande avec l'option -i:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -ifichier1.h monfichier.cpp
    Il faut cependant avoir la certitude que le fichier se trouvera dans un dossier qui sera parcouru par gcc.

    Cela peut se faire avec l'option -I (i majuscule):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -Ichemin/vers/dossier/d_entête -ifichier1.h monfichier.cpp
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 31
    Par défaut
    Non c'est pas ça mon problème
    je vais donner un petit exemple
    j'ai un fichier cpp
    il contient des include
    voilà par exemple ce qu'il contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include <windows.h>
    #include <stdio.h>
    #include <string.h>
    #include "menu.h"
    seulement moi je voudrais qu'il contienne aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "monfichiercreer.h"
    Bon y a trois solution que je vois
    1) faire ça à la main c'est à dire rajouter pour chaque fichier que je vais passer au pre processing
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "monfichiercreer.h"
    ce qui est impossible car il y a des fois 1000 fichiers à faire passer

    2)faire ça par programmation en ajouter cette ligne
    seulement là aussi ça fausse le programme si je rajoute la ligne

    3) Solution qui si vous pouvez m'aider à la trouver
    c'est d'ajouter dans ma lignde de comande
    une option pour permettre de lui dire de chercher dans le répertoire pour trouver mon fichier et donc en utilisant l'option -I et ensuite de rajouter ou de prendre en considération le include de mon "monfichiercreer.h pour tout les fichiers à passer en test

    voilà j'espère avoir été claire j'ai un peu de mal à faire passer le problème

  4. #4
    Membre averti
    Inscrit en
    Août 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 31
    Par défaut
    voilà la commande avec ce que vous m'avez donner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String[] Commande = new String[] {"command.com","/C",
                "Resource\\gcc.exe",
                "-E",					                    
                "-B","Resource",
                "-I include -i monfichercrrer.h main.cpp",
                in_path,
                ">",					                      
                "test\\"+out_path};
    in_path: fichier en entrée
    "test\\"+out_path le fichier ou se trouve mon fichier de sortie

    mais ça ne marche pas il reconnait mm pas la commande

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par bilinemiline Voir le message
    voilà la commande avec ce que vous m'avez donner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String[] Commande = new String[] {"command.com","/C",
                "Resource\\gcc.exe",
                "-E",					                    
                "-B","Resource",
                "-I include -i monfichercrrer.h main.cpp",
                in_path,
                ">",					                      
                "test\\"+out_path};
    in_path: fichier en entrée
    "test\\"+out_path le fichier ou se trouve mon fichier de sortie

    mais ça ne marche pas il reconnait mm pas la commande
    Mais je n'ai pas parlé de patch...

    J'ai parlé d'un option de compilation, car c'était le sens que j'avais donné à ta question en fonction de son titre...

    Ici, je parle "simplement" de rajouter l'option -I (si besoin) et l'option -i (certainement) dans ton makefile ou tout autre système de génération automatique.

    Les sources ne sont absolument pas modifiées, et c'est gcc qui fait "tout le boulot" en incluant automatiquement le fichier indiqué lors de la compilation

    Si, maintenant, ton but est de modifier effectivement les fichiers, tu devra soit te palucher le tout à la main, soit trouver (par exemple) une ligne qui apparait dans l'ensemble des fichiers qui requièrent ton fichier d'en-tête et profiter de l'éventuelle possibilité de rechercher cette ligne dans l'ensemble des fichiers présentants dans un ou des dossiers.

    Tu devrais d'ailleurs pouvoir t'en sortir également (si tu identifie une ligne ou des termes qui peuvent t'indiquer que l'inclusion est nécessaire) avec les commande grep et sed (sous linux)... mais je ne les maitrise pas assez bien pour t'en parler
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre averti
    Inscrit en
    Août 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 31
    Par défaut
    je ne désire pas modifie dans les fichiers justement
    et je t'ai donné la ligne de commande que j'ai mise
    c'est effectivement ce qu'il faut faire
    mais il reconnait pas la commande
    ce pourquoi je t'ai ecris la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String[] Commande = new String[] {"command.com","/C",
                "Resource\\gcc.exe",
                "-E",					                    
                "-B","Resource",
                "-I include -imonfichercrrer.h main.cpp",
                in_path,
                ">",					                      
                "test\\"+out_path};
    voilà ce qu'il m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: java.io.IOException: CreateProcess error=87, Paramètre incorrect

Discussions similaires

  1. boucle pour rajouter des items dans combobox
    Par panda78 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/08/2012, 04h46
  2. Réponses: 0
    Dernier message: 15/03/2010, 00h25
  3. Réponses: 0
    Dernier message: 17/01/2009, 11h33
  4. Organisation pour rajouter des tables
    Par thufir hawat dans le forum Access
    Réponses: 4
    Dernier message: 14/10/2005, 11h09

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