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 :

compilation en c sous linux


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut compilation en c sous linux
    Bonjour à tous
    j voudrais Ecrire un programme C qui prend en paramètre une série de fichiers source .c, les compile chacun
    séparément et simultanément puis édite les liens pour produire un exécutable.
    j'ai écrit ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>  
    #include <stdlib.h>  
    #include <unistd.h>  
    int main(int argc, char* argv[])
    {int i;
    char* tas[];
       printf("Lancement de %s avec pour arguments \n",argv[0]);
       for( i = 1; i < argc;++i)
       {
            printf("%s\n ",argv[i]);
            cc -o tas[i] argv[i];
       }
    }
    pour au moins compiler mais il me donne cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    compile.c: In function ‘main’:
    compile.c:7: error: array size missing in ‘tes’
    compile.c:12: error: ‘cc’ undeclared (first use in this function)
    compile.c:12: error: (Each undeclared identifier is reported only once
    compile.c:12: error: for each function it appears in.)
    compile.c:12: error: ‘o’ undeclared (first use in this function)
    compile.c:12: error: expected ‘;’ before ‘tas’
    j parviens pas à trouver la solution
    Merci de me proposer une solution

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Salut

    Rien ne te choque ici ?

  3. #3
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Déjà, tu dois définir une taille dans ton tableau...

    Ensuite, tu ne peux pas inclure une commande directement dans un fichier .c (l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    compile.c:12: error: ‘cc’ undeclared (first use in this function)
    le montre bien ).

    Cependant, tu peux utiliser la fonction system("ta_commande") pour lancer une commande shell

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    ça donnerait quoi comme instruction pour que le fichier pour que le fichier puisse faire la compilation

  5. #5
    Membre confirmé Avatar de Gui13
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par défaut
    A mon avis tu te trompes de langage de programmation pour ce genre d'actions.

    Un script shell serait plus simple à prendre en charge.

    Mais pour ton problème, tu peux eventuellement faire un truc dans ce genre:

    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
     
    #include <stdio.h>  
    #include <stdlib.h>  
    #include <unistd.h>  
    int main(int argc, char* argv[])
    {
       int i;
       char *tas[]; // a quoi sert cette variable?
       char* options = "-g -Wall";
       char commande[1024];
       printf("Lancement de %s avec pour arguments \n",argv[0]);
       for( i = 1; i < argc;++i)
       {
            sprintf(commande, "cc %s %s", options, argv[i]) // formate la commande à donner à system()
            printf("%s : commande: %d\n ",argv[i], commande);
            system(commande); // balance la commande
       }
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut recuperer
    Bonjour et merci pour la réponse

    J' aimerais donc recuperer l'excecutable et le passer au fils pour qu'il l'execute
    comment récuperer l 'executable et le passer au fils??

  7. #7
    Membre confirmé Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    #!/bin/bash
     
    OPTIONS="-g -W -Wall -Werror"
    PREFIX="prog"
     
    j=0
    for i in $@; do
      let "j += 1"
      cc $(OPTIONS) "$i" -o "${PREFIX}_${j}"
    done
    Script non teste, mais tellement plus simple qu'un code C

Discussions similaires

  1. Compiler pour Windows sous Linux
    Par YuGiOhJCJ dans le forum Choisir un environnement de développement
    Réponses: 11
    Dernier message: 05/09/2007, 19h40
  2. probleme de compilation flight gear sous linux
    Par Asmod_D dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 28/03/2007, 15h30
  3. Compilation prob windows sous linux
    Par Blo0d4x3 dans le forum Linux
    Réponses: 7
    Dernier message: 05/09/2006, 00h24
  4. [débutant]compiler avec gcc sous linux
    Par Ickou dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 10/03/2006, 17h27
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 13h43

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