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
Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.
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.
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).
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...
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.
Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.
https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/
Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.
Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.
https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/
Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.
Le Tout est souvent plus grand que la somme de ses parties.
Il n'y a pas de mauvaises inventions, juste des mauvaises pratiques.