Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème compilation C

    17 septembre 2021 à 15:18:07

    Salut,

    Je suis arrivé à la partie "Création de variables" du cours de C, et j'ai supprimé les anciens dossiers avec le main.c pour refaire quelque chose de propre comme on commence à utiliser les fichiers.c et .h.

    Donc j'ai recrée un projet main.c sur codeblocks, et un "créationsdesvariables.xcodeproj" sur Xcode.

    Mais quand j'essaye de compiler le tout premier code de base "Hello, world", ça ne marche plus. Ça fais des heures que je cherche et je comprends pas où est le problème...

    Mon code dans Xcode ne s'actualise même plus avec Code Blocks....

    J'ai tout mis dans "Premier Programme" sur le bureau de mon mac

    Quelqu'un peut me dire ce que je fais de mal please ? 

    -
    Edité par Ontimeyes 17 septembre 2021 à 15:22:31

    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2021 à 15:24:21

      Tu as un fichier main.c sur Code::Blocks et un fichier *.h sur Xcode?
      Il faut tout ramener à la même place et indiquer quels fichiers font partie de ton projet.
      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

        17 septembre 2021 à 15:31:39

        Je ne connais pas Xcode, mais je vois dans le rapport de compilation de Code::Blocks que la compilation à réussi :

        Output file is bin/Debug/Premierprogramme with size 48.53 KB
        Process terminated with status 0 (0 minute(s), 0 second(s))
        0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
        

        et il semblerait que l'exécution aussi.



        • Partager sur Facebook
        • Partager sur Twitter
        ...
          17 septembre 2021 à 15:42:03

          Il faudrait peut-être nous montrer ton code.
          Il y a peut-être une option dans Code::Blocks pour dire de faire une pause avant de fermer la fenêtre?
          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            17 septembre 2021 à 15:58:17

            Il me semble que

            /Users/lucas/Desktop/Premier

            qui n'existe pas (ligne 8) est en fait le début d'un nom de répertoire qui se poursuit par un espace (ligne 3)

            Arrêtez de mettre des espaces dans les noms des répertoires.

            -
            Edité par michelbillaud 17 septembre 2021 à 15:59:55

            • Partager sur Facebook
            • Partager sur Twitter
              17 septembre 2021 à 17:05:01

              Mon code c'est simplement celui de base :

              #include <stdio.h>

              #include <stdlib.h>

              int main(int argc, char *argv)

              {

                 printf ("Hello\n");

                 return 0;

              }

              Mais je ne sais pas pourquoi je n'arrive plus à voir le résultat de la compilation dans mon terminal comme avant. Pourtant j'ai repris le cours depuis le début et fait exactement la même chose.

              Quand je crée un projet "main.c" avec code blocks, je dois ouvrir ce même projet avec Xcode ? 

              -
              Edité par Ontimeyes 17 septembre 2021 à 17:12:06

              • Partager sur Facebook
              • Partager sur Twitter
                17 septembre 2021 à 17:33:30

                Je ne suis pas sur un Mac et je ne connais pas Xcode, mais il me semble qu'il est un IDE comme Code::Blocks.
                Pourquoi passer d'un IDE à l'autre? Tu ne peux pas tout faire sur Code::Blocks?
                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                  17 septembre 2021 à 17:40:06

                  Ontimeyes a écrit:

                  Mon code c'est simplement celui de base :

                  le problème ne vient pas ton code, mais - comme expliqué plus haut - du fait que ton projet se trouve dans un répertoire dont le nom contient un espace.

                  /users/lucas/Desktop/Premier (espace) programme  # tu vois ?

                  Et ça, codeblocks (que je te recommande vivement d'abandonner), il sait pas gérer.

                  C'est pour ça précisément que tu as le message à propos de

                  /users/lucas/Desktop/Premier

                  qui n'existe pas.

                  -
                  Edité par michelbillaud 17 septembre 2021 à 17:48:47

                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 septembre 2021 à 18:06:08

                    michelbillaud a écrit:

                    Et ça, codeblocks (que je te recommande vivement d'abandonner), il sait pas gérer.

                    Ah bon ! pourtant je viens de tester, ça fonctionne très bien !

                    D'ailleurs comme j'ai écris plus haut, sa compilation sous Code::Blocks a réussi ! On le vois sur la copie d'écran qu'il a posté. De même que l'on voit les traces d'une exécution réussi.

                    C'est peut-être plutôt sa console d'exécution qui ne sait pas gérer.

                    Après comme dit Pierrot, pourquoi utiliser deux EDI simultanément ?

                    -
                    Edité par rouIoude 17 septembre 2021 à 18:12:27

                    • Partager sur Facebook
                    • Partager sur Twitter
                    ...
                      17 septembre 2021 à 18:20:56

                      Ne supposons pas, et y pas de "chez moi ça marche" qui tienne, c'est écrit en blanc sur rouge.

                      Le message d'erreur est provoqué par l'appel de cb_console_runner qui se trouve dans Applications/Codeblocks.app. C'est pas codeblocks, c'est qui ?

                      Et avec comme paramètre le nom du répertoire non entouré par des guillemets. Et comme le nom du répertoire contient un espace, codeblocks quéquette walou, si vous permettez l'expression.

                      -
                      Edité par michelbillaud 17 septembre 2021 à 18:24:50

                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 septembre 2021 à 18:35:28

                        rouIoude a écrit:

                        michelbillaud a écrit:

                        Et ça, codeblocks (que je te recommande vivement d'abandonner), il sait pas gérer.

                        Ah bon ! pourtant je viens de tester, ça fonctionne très bien !

                        D'ailleurs comme j'ai écris plus haut, sa compilation sous Code::Blocks a réussi ! On le vois sur la copie d'écran qu'il a posté. De même que l'on voit les traces d'une exécution réussi.

                        C'est peut-être plutôt sa console d'exécution qui ne sait pas gérer.

                        Après comme dit Pierrot, pourquoi utiliser deux EDI simultanément ?

                        -
                        Edité par rouIoude il y a 14 minutes

                        Es-tu sur un Mac? Les implémentations de Code::Blocks peuvent varier d'un système à l'autre

                        Je suis d'accord avec michelbillaud que les espaces dans un path sont une calamité.

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Le Tout est souvent plus grand que la somme de ses parties.

                          17 septembre 2021 à 18:44:50

                          michelbillaud a écrit:

                          Ne supposons pas, et y pas de "chez moi ça marche" qui tienne, c'est écrit en blanc sur rouge...

                          Je suis d'accord pour ne pas mettre d'espaces dans les chemins et nom de fichiers,

                          mais pourquoi Code::Blocks donne un retour d'exécution réussi avec un code retour 0 ?

                          -
                          Edité par rouIoude 17 septembre 2021 à 18:46:21

                          • Partager sur Facebook
                          • Partager sur Twitter
                          ...
                            17 septembre 2021 à 19:04:30

                            J'ai recommencé sans espaces et ça ne marche toujours pas.

                            J'ai deux IDE car j'ai suivi le cours et c'est ce qui est recommandé, j'ai rien inventé...:/

                            Donc que me conseillez-vous ? On peut tout faire avec Xcode ? 

                            -
                            Edité par Ontimeyes 17 septembre 2021 à 19:14:14

                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 septembre 2021 à 19:19:13

                              Le cours recommande d'utiliser deux IDE en parallèle ? C'est quand même étonnant ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                              ...
                                17 septembre 2021 à 19:22:19

                                Oui, tu ferais quoi à ma place ?

                                -
                                Edité par Ontimeyes 17 septembre 2021 à 19:22:32

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  17 septembre 2021 à 19:26:54

                                  Et le cours recommande de mettre des espaces dans le pathname?
                                  Pour mettre toutes les chances de ton côté, renomme le fichier avec '_' à la place de l'espace.
                                  et n'oublie pas de le mentionner à Xcode et Code::Blocks.
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Le Tout est souvent plus grand que la somme de ses parties.

                                    17 septembre 2021 à 19:44:10

                                    Bon finalement j'ai delete code::blocks, je trouvais ça naze depuis le début et tant mieux si y'en a pas besoin.
                                    Du coup j'ai téléchargé la "Command Line Tools for Xcode", et je run directement depuis Xcode et ça marche.

                                    J'ai pas essayé de run avant d'avoir download la command line tools donc je sais pas si ça marche sans...

                                    Par contre j'ai Program ended with exit code : 0 à la fin, vous savez pourquoi ? On peut l'enlever pour avoir un code source "clean" ?

                                    Merci en tous cas :)

                                    Ps : finis les espaces dans le pathname

                                    -
                                    Edité par Ontimeyes 17 septembre 2021 à 19:50:20

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      17 septembre 2021 à 19:54:21

                                      Par contre j'ai Program ended with exit code : 0 à la fin, vous savez pourquoi ? On peut l'enlever pour avoir un code source "clean" ?

                                      Rien à voir avec le code source. C'est xcode qui t'indique que le return code de ton programme est 0 (mets return(2) à la fin du main() et xcode te mettra exit code: 2). Le jour où tu exécuteras ton programme hors de xcode, tu n'auras plus cet affichage.

                                      -
                                      Edité par edgarjacobs 17 septembre 2021 à 19:57:22

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                                        17 septembre 2021 à 20:04:21

                                        Ah ok merci pour l'explication, et tu me conseilles d'exécuter mon programme comme je le fais là avec Xcode ou c'est mieux de le faire "à l'extérieur" ?

                                        Je suis total débutant donc je suis tout ouïe

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          17 septembre 2021 à 20:22:57

                                          Tu fait comme tu veux, mais un programme terminé et opérationnel est destiné à être exécuté en dehors de l'IDE.

                                          IDE ne sert que lors du développement du programme.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          ...
                                            18 septembre 2021 à 1:24:25

                                            Il me semble que MacOS est un système semblable à Unix, je me trompe?
                                            Il y a forcément un mode "console" ou invite de commande.
                                            Tu fais un  cd  du dossier où se trouve l'exécutable et tu tapes le nom du programme
                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Le Tout est souvent plus grand que la somme de ses parties.

                                              18 septembre 2021 à 7:24:11

                                              Il n'est pas indispensable de se déplacer par cd

                                              En restant où on est, on peut aussi indiquer le chemin d'accès (absolu ou relatif) de l'exécutable à lancer.

                                              Ou encore mettre l'exécutable dans un répertoire pointé par la variable PATH

                                              Sous unix (linux) j'ai un répertoire ~/bin où je place les programmes et scripts utilitaires perso,, et dans le fichier .bashrc, il y a

                                              export PATH=$PATH:$(HOME)/bin 

                                              pour ajouter ce répertoire à la liste du PATH, en début de session.

                                              PS maintenant que tu as viré codeblocks, balance aussi ce cours qui, pour manier un euphémisme charitable, n''est pas tout à fait ce qu'on trouve de mieux.

                                              -
                                              Edité par michelbillaud 18 septembre 2021 à 7:40:43

                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Problème compilation C

                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                              • Editeur
                                              • Markdown