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

Linux Discussion :

GCC AND XLC comment faire


Sujet :

Linux

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Par défaut GCC AND XLC comment faire
    salut tous le monde !!!merci pour le grand travil que vous effectué sur ce site !!ça m’a aidé vraiment tout au long de mes études !!
    il s’agit d’un produit installé et compiler sur une machine AIX avec xlc comme compilateuret ma tache et la migration de ce produit vers une nouvelle plateforme tel que linus red hat etreprise 5 avec gcc comme compilateur .j’ai commencé le travail et j’ai résolu plusieurs problémes mais le probléme majeur c’est de faire la correspondance entre xlc et gcc surtout avec l’option –D :voici un exemple de ligne que j’arrive pas a la compiler avec gcc :
    gcc -c -DAIX41_OPSYS -I/home/oracle/Open2/COMMON/inc -I/home/oracle/Open2/dbg -DSYSV -D_NO_LONGLONG -I../inc -g -g -c afp_dump.c
    j’espére m’aidez le plus vite possible et metrci d’avance !!

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    L'option -c que tu passes 2 fois, dit au compilateur de créer un fichier objet (.o) et pas un exécutable.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Par défaut
    merci de m'avoir répondu le truc que tu m'a expliquer m'a vraiment aidé mais le probléme rest toujours avec cette option -D!!je veux seulement un exemple simple qui explique ctte option!!en tout cas merci encore une fois!!

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Ah autant pour, je n'avais pas compris ça, l'option -D sert à définir une macro sur la ligne de commande, c'est exactement pareil que si tu ajoutais manuellement au début de chaque fichier un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #define AIX41_OPSYS 
    #define SYSV 
    #define _NO_LONGLONG
    http://gcc.gnu.org/onlinedocs/gcc-4....cessor-Options
    Cordialement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Par défaut
    a ce que j'ai compris il faut que je definie AIX41_OPSYS dans chaque fichier avnt de compiler c'est ça non!!!

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par eljuventino Voir le message
    a ce que j'ai compris il faut que je definie AIX41_OPSYS dans chaque fichier avnt de compiler c'est ça non!!!
    Il n'y pas obligation, c'est ton code à priori qui en a besoin.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Par défaut
    merci infiniment c'était sympa de ta part d'expliquer ça endétaills merci encore une fois!!

  8. #8
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    you're welcome.

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    ton problème ne vient pas des define, s'ils étaient là avant et que ça fonctionnait ...

    Il y a peut etre une option utilisé pour xlc qui n' est plus présente dans ta ligne de compil, quel était le ligne de compil pour xlc ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Par défaut
    voici la ligne avant je n'ai changé que xlc par gcc:
    gcc -c -DAIX41_OPSYS -I/home/oracle/Open2/COMMON/inc -I/home/oracle/Open2/dbg -DSYSV -D_NO_LONGLONG -I../inc -g -g -c afp_dump.c
    aprés l'explication detaillé d'hier j'ai trouvé le fichier ou la condition -D fait refence au portion du code suivant:
    #if (defined(UNIX_OPSYS) && !defined(sun)) || defined(IRIX53_OPSYS) || defined(AIX41_OPSYS) || defined(AIX)
    /****************************************************************************/
    /* Function: set_signal() - VERSIONE UNIX */
    /* Date L.M.: 26-May-1998 */
    /* Description: Assign sig_handler() for all signals */
    /****************************************************************************/

    void set_signal()
    {
    struct sigaction act = { 0, 0, 0 };
    int sig;

    act.sa_handler = sig_handler;

    for (sig = 1; sig < SIGMAX; sig++)
    if (sig != SIGKILL && sig != 21 && sig != SIGCHLD)
    sigaction(sig, &act, 0);

    }

    #endif

    #ifdef sun
    /****************************************************************************/
    /* Function: set_signal() */
    /* Date L.M.: 23-Nov-1998 */
    /* Description: Assign sig_handler() for all signals */
    /****************************************************************************/

    void set_signal()
    {
    struct sigaction act = { 0, 0, 0 };
    int sig;

    act.sa_handler = sig_handler;

    for (sig = 1; sig < SIGRTMAX; sig++)
    if (sig != SIGKILL && sig != SIGTTIN && sig != SIGCHLD)
    sigaction(sig, &act, 0);

    }


    #endif /* ifdef sun */
    ça sera simpa si vous m'aider a expliquer ça!!

  11. #11
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Avec GCC, tu peux réécrire de façon ça plus propre:
    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
    #if (defined(UNIX_OPSYS) && !defined(sun)) || defined(IRIX53_OPSYS) || defined(AIX41_OPSYS) || defined(AIX)
    # ifndef SIGTTIN
    #  define SIGTTIN  21
    # endif
    #
    # ifndef SIGRTMAX
    #  define SIGRTMAX SIGMAX
    # endif
    #endif
     
    /****************************************************************************
     * @fn set_signal() - VERSION UNIX
     * @date L.M.: 26-May-1998
     * @brief Assign sig_handler() for all signals
     ****************************************************************************/
     
    void set_signal(void)
    {
       struct sigaction const action = {.sa_handler = sig_handler};
     
       for(int signo = 1; signo < SIGRTMAX; signo++)
       {
          if(signo != SIGTTIN  &&  signo != SIGCHLD)
             sigaction(signo, &action, NULL);
       }
    }

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    et tu obtiens quel erreur sous gcc sinon ... ?

Discussions similaires

  1. Comment faire du drag and drop dans un Listbox
    Par jca dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 08/02/2013, 20h54
  2. Remoting and Reflection : comment faire?
    Par Piet dans le forum C#
    Réponses: 10
    Dernier message: 04/12/2009, 09h32
  3. Make et gcc pas installé, comment faire
    Par BbT0n dans le forum Administration système
    Réponses: 5
    Dernier message: 05/11/2008, 15h56
  4. Comment faire pour mettre l'ecran en veille ?
    Par March' dans le forum MFC
    Réponses: 6
    Dernier message: 29/08/2002, 14h25
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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