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

Code::Blocks Discussion :

Ça ne marche pas :(


Sujet :

Code::Blocks

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut Ça ne marche pas :(
    Bonjour

    Je teste simultanément code::block et le rpm de Mandriva... L'erreur est où ?
    J'ai un code qui compile avec g++ manuellement et qui marche, même si j'ai du mettre quelque chose d'anormal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     fflush(stdin);
        scanf("%c",&c);
        scanf("%c",&c);
    Car le fflush(stdin); ne vidait pas le tampon.

    Si je compile avec code::block, voivi le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : /home/bs/Cours_IUT/info/
    --------------------------------------------------------------------------------
    Switching to target: default
    Linking console executable: /home/bs/Cours_IUT/info/chaine
    g++: .objs/main.o : Aucun fichier ou répertoire de ce type
    g++: pas de fichier à l'entrée
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 0 warnings
    L'exécution donne ensuite le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cheking for existance : /home/bs/Cours_IUT/info/chaine
    en ouvrant une fenêtre qui dit :
    It seems that this project has not been built yet
    Do you want to built it now?
    Pour info:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    [troumad@portable][~/Cours_IUT/info]$ cat chaine.cbp
    <?xml version="1.0"?>
    <!DOCTYPE CodeBlocks_project_file>
    <CodeBlocks_project_file>
            <FileVersion major="1" minor="1"/>
            <Project>
                    <Option title="Console application"/>
                    <Option makefile="Makefile"/>
                    <Build>
                            <Target title="default">
                                    <Option type="1"/>
                                    <Option parameters=""/>
                                    <Option includeInTargetAll="1"/>
                                    <Option projectCompilerOptionsRelation="3"/>
                                    <Option projectLinkerOptionsRelation="3"/>
                                    <Option projectIncludeDirsRelation="3"/>
                                    <Option projectLibDirsRelation="3"/>
                                    <Compiler>
                                            <Add option=""/>
                                    </Compiler>
                                    <Linker>
                                            <Add option=""/>
                                    </Linker>
                            </Target>
                    </Build>
            </Project>
    </CodeBlocks_project_file>
    [troumad@portable][~/Cours_IUT/info]$ cat  main.cpp
    #include <stdio.h>
    #include <string.h>
     
    int main()
    {
        char chaine[100], ch[10], c, *p;
        unsigned short i=0,j,k;
     
        printf("Donnez une chaine de caractères : ");
        scanf("%s",chaine);
        printf("Quel caractère cherchons-nous dedans : ");
        fflush(stdin);
        scanf("%c",&c);
        scanf("%c",&c);
     
        /* version incompréhensible */
        for(p=chaine-1;(p=strchr(p+1,c))!=NULL;i++);
        printf("%c apparait %hu fois dans la chaine : %s\n",c,i,chaine);
     
        /* version compréhensible */
        for (i=0,j=0;chaine[j]!=0;j++) // double initialisation
         if (chaine[j]==c)
          i++;
        printf("%c apparait %hu fois dans la chaine : %s\n",c,i,chaine);
     
        printf("Quelle chaine voulez-vous chercher dans votre première chaine de caractères ? : ");
        scanf("%s",ch);
     
        /* version incompréhensible */
        for(i=0,p=chaine-1;(p=strstr(p+1,ch))!=NULL;i++);
        printf("%s apparait %hu fois dans la chaine : %s\n",ch,i,chaine);
     
        /* version plus compréhensible */
        for (i=0,j=0;chaine[j]!=0;j++) // double initialisation
         if (chaine[j]==ch[0])
         {
          for (k=1;ch[k]!=0 && ch[k]==chaine[j+k];k++);// tant que c'est la même chose et qu'on n'est pas sorti de la chaine
          if (ch[k]==0) // si on est sorti après avoir parcouru toute la chaine
           i++;
         }
        printf("%s apparait %hu fois dans la chaine : %s\n",ch,i,chaine);
     
    }
    [troumad@portable][~/Cours_IUT/info]$
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Sois attentif à ce que tu fais

    D'un coté, tu semble écrire un programme en C pur : inclusion de stdio.h, de string.h, utilisation de flush, de scanf (qui est peu recommandé par ailleurs) et de printf... et, de l'autre, ton fichier est un fichier qui sera comilé avec le compilateur C++ de Gcc du fait de son exention en .cpp...

    Sois en outre attentif au fait que main est une fonction qui doit renvoyer un entier (normalement 0 ou EXIT_SUCCESS quand l'application se termine sans erreur )

    Mais bon... le problème n'est visiblement pas là

    Ce que je te conseillerais, c'est, à peu pres dans l'ordre:
    • de vérifier que tu aies bien les droits de lecture et d'écriture dans les dossiers et sous dossiers de /home/bs/Cours_IUT
    • de vérifier que les dossiers utilisés pour rechercher les bibliothèques et les fichiers d'en-tête soient correctement précisés
    • augmenter le niveau d'avertisssements à la compilation et tenter une recompilation complete avec les touches <ctrl> + <F11>
    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
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Bonsoir

    Merci pour l'aide apportée.
    Oui, je fais du C pur, pas du C++.
    J'utilise en connaissance de cause scanf :ce n'est pas un programme sécurisé Par contre, il me pose un problème avec le fflush qui semble inactif

    J'ai corrigé les autres remarques : le fichier s'appelle main.c et mon main renvoie 0.
    J'ai tous les droits dans le répertoire où je travaille. Mais, il y a peut-être des répertoires temporaires que je ne sais pas où configurer !

    Voici lemessage d'erreur généré par un [ctrl][f11] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : /home/aline/codeblocks/
    --------------------------------------------------------------------------------
    Switching to target: default
    Linking console executable: /home/aline/codeblocks/chaine
    g++: .objs/main.o : Aucun fichier ou répertoire de ce type
    g++: pas de fichier à l'entrée
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 0 warnings
    Le message suivant au lancement de code block me gène :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    These templates are only provided for your convenience.
    Many of the available templates need extra libraries in order to be compiled succesfuly.
     
    Extra libraries which Code::Blocks does *NOT* provide...
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Je fais des tests...
    Le makefile généré par code::blocks marche et crée si besoin les répertoires .deps .objs alors que code::block ne les fait pas
    Quand ses répertoires sont présents, code::blocks ne marche toujours pas, mais le message est différent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : /home/aline/codeblocks/
    --------------------------------------------------------------------------------
    Switching to target: default
    Linking console executable: /home/aline/codeblocks/chaine
    Process terminated with status 0 (0 minutes, 0 seconds)
    0 errors, 0 warnings
    mais ne compile rien de nouveau...
    [Ctrl][F11] me donne l'impression que l'objet n'est pas créé !

    L'exécution donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     execvp(xterm, -T, Console application, -e, /usr/bin/console_runner, /home/aline/codeblocks/chaine, ) failed with error 2!
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Citation Envoyé par olivier-serveur
    ca vient peut-etre de la, il ne compilerait pas avec le makefile, regarde tes options dans CodeBlocks :
    Settings -> Compiler -> onglet : other -> build methode : Makefile.
    Et je compile.
    Mais l'exécution automatique plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execvp(xterm, -T, Console application, -e, /usr/bin/console_runner, /home/aline/codeblocks/chaine, ) failed with error 2!
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

Discussions similaires

  1. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  2. Maximiser fenêtre ne marche pas
    Par sandrinec dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/06/2003, 12h02
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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