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 du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Points : 42
    Points
    42
    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 chevronné
    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
    Points : 1 750
    Points
    1 750
    Par défaut
    Salut

    Rien ne te choque ici ?

  3. #3
    Membre émérite
    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
    Points : 2 793
    Points
    2 793
    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
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

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

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

  5. #5
    Membre habitué 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
    Points : 133
    Points
    133
    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 du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Points : 42
    Points
    42
    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 actif 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
    Points : 245
    Points
    245
    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