Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de programme Linux -> Windows

J'ai un problème de programme avec Linux et Windows

Sujet résolu
    6 juin 2020 à 11:27:29

    Bonjour,

    j'ai des amis qui n'ont pas Linux et pour leur envoyer le fichier .exe du programme je dois lancer le programme sous Windows pour avoir un .exe de "type Windows" et  pas de type Linux. Sauf que tout mais programme on la même erreur : ld returned 1 exit status.

    Sous Linux comme sous Windows, j'utilise CodeBlocks et je compile avec GNU GCC Compiler. Sous Linux une erreur comme ça était déjà apparu et pour que le programme marche j'ai du faire Project -> Build Options -> Linker Seting et dans la case Other Linker Options marquer -lm. J'ai donc tout naturellement essayé de faire la même sauf que ça fait exactement la même chose que sans, c'est-à-dire ça ne compile pas et ça me mets toujours le même message d'erreur. Comment faire pour pouvoir compiler ?

    Merci pour vos réponses !

    -
    Edité par GalipetteCendrée 6 juin 2020 à 11:31:17

    • Partager sur Facebook
    • Partager sur Twitter

    Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.

      6 juin 2020 à 12:21:56

      " ld returned 1 exit status."

      As-tu un autre message avec ?

      • Partager sur Facebook
      • Partager sur Twitter
        6 juin 2020 à 12:37:23

        Si, ça compile ! Mais ça n'édite pas les liens. On rappelle que la compilation c'est la transformation de fichiers sources en fichiers objets et que l'édition des liens c'est la liaison entre ces fichiers objets, et les potentielles bibliothèques statiques (en très gros...).

        ld returned 1 exit status.

        C'est simplement le message qui indique qu'il y a eu une erreur d'édition des liens, mais il faut que tu nous fournisses le message d'erreur complet. En ajoutant la bibliothèque "libm.so.xxx" ou "libm.a" (tout ce qui est "libm" et qui possède l'extension d'un lib) tu ne regleras pas ton problème, tu ne fais qu'ajouter une bibliothèque.

        Par contre je tiens à te prévenir que tes amis auront potentiellement des problèmes lors de l'exécution du programme sur leur machine. Il se peut qu'il leur manque des DLL, les problèmes de dépendance sous Windows c'est un fléau.

        -
        Edité par Daimyo_ 6 juin 2020 à 12:41:34

        • Partager sur Facebook
        • Partager sur Twitter
          6 juin 2020 à 13:06:33

          libm (tout comme libpthread, librt, libdl etc) n'existe pas sous Windows, c'est spécifique Linux.

          En clair, lorsque tu utilises des symboles de math.h, il n'y a que sous Linux que tu as besoin de lier libm.

          Tes pb d'édition des liens sous Windows ont donc une autre origine.

          Si tu comptes cibler plusieurs plateformes, laisse tomber CodeBlocks. Utilise CMake et un IDE qui en a une bonne intégration (Visual Studio, VSCode, QtCreator etc).

          • Partager sur Facebook
          • Partager sur Twitter
            6 juin 2020 à 13:46:53

            voici toute la zone d'erreur :

            • Partager sur Facebook
            • Partager sur Twitter

            Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.

              6 juin 2020 à 13:55:59

              Montre nous les build log
              • Partager sur Facebook
              • Partager sur Twitter
                6 juin 2020 à 13:59:55

                • Partager sur Facebook
                • Partager sur Twitter

                Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.

                  6 juin 2020 à 14:03:47

                  EDIT: Code::Blocks et ses problèmes... libm existe sous Windows ?? (je ne pense pas)

                  -
                  Edité par Daimyo_ 6 juin 2020 à 14:09:39

                  • Partager sur Facebook
                  • Partager sur Twitter
                    6 juin 2020 à 15:50:00

                    Dans le "build log", normalement on voit la compilation du fichier source .c, or dans ton screen je ne le vois pas. D'où provient ton fichier main.o ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 juin 2020 à 16:34:29

                      Je sais pas du tout je connais pas du tout le type des fichiers d'où sa vient tout ça. C'est d'ailleurs pour ça que je demande sur le forum.

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.

                        7 juin 2020 à 3:28:42

                        GalipetteCendrée a écrit:

                        Je sais pas du tout je connais pas du tout le type des fichiers d'où sa vient tout ça. C'est d'ailleurs pour ça que je demande sur le forum.

                        Je me demande si ça ne serait pas plus simple d'envoyer le source des programmes à tes amis ...

                        Je ne travaille pas avec un IDE sur Windows 10, j'utilise plutôt cmd directement.

                        Ma façon de faire est la suivante.

                        Je peux compiler séparément chaque programme (ou tous ensemble ...) comme suit:

                        gcc -c source1.c source2.c ...

                        J'obtient des fichiers sourcei.o

                        Je fais ensuite:

                        gccc -o nom_du_programme source1.o source2.o ...

                        C'est ce que les IDE sont censés faire automatiquement ...

                        Et j'obtient le fichier nom_du_programme.exe

                        • Partager sur Facebook
                        • Partager sur Twitter

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

                          7 juin 2020 à 11:37:14

                          Non c'est bon j'ai trouvé une alternative : le Ctrl + C et Ctrl + V. Ça marche tout aussi bien. Et c'est parce que l'IDE ne leur serviraà rien appart à exécuter le code que je leur envoie. Et de toute façon, ils auraient eu le même problème, sauf que eux n'auraient pas compris pourquoi le programme ne s'exécuterait pas parce qu'ils ignorent la zone d'erreur (ce qui est normal vu qu'il n'ont jamais fait de C). Je te parle d'amis qui me disent "C'est bien ce que tu fais mais la programmation c'est pas pour moi". Donc tu vois le genre...
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.

                          probleme de programme Linux -> Windows

                          × 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