Probleme compilation sous windows [devc++]

Probleme compilation sous windows [devc++] - C - Programmation

Marsh Posté le 16-01-2007 à 21:09:25    

Bonjour,
j'ai un programme que j'ai écrit en C sous linux et qui utilise les sockets. Sous linux ca marche bien, et j'aimerais utiliser mon programme sous windows. Sur devc++, j'ai intégré les librairies libws2_32.a -lwsock32 -lwinmm et -lmwindows dans outils/options du compilateur/ éditeur de liens, voila le résultat de la compilation:
 
Compilateur: Default compiler
Exécution de  gcc.exe...
gcc.exe "C:\send2.c" -o "C:\send2.exe"    -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" libws2_32.a -lwsock32 -lwinmm -lmwindows  
gcc.exe: libws2_32.a: No such file or directory
 
Exécution terminée
Compilation OK
 
Résultat: aucun .exe crée, sans doute à cause de la librairie libws2_32.a ??
Quelqu'un aurait-il une idée svp ??

Reply

Marsh Posté le 16-01-2007 à 21:09:25   

Reply

Marsh Posté le 16-01-2007 à 23:00:46    

DrOctopus a écrit :

gcc.exe "C:\send2.c" -o "C:\send2.exe"    -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" libws2_32.a -lwsock32 -lwinmm -lmwindows



libws2_32.a


Pourquoi cette bibliothèque est-elle traitée différemment ?

-lws2_32


comme les autres, non ?


Message édité par Emmanuel Delahaye le 16-01-2007 à 23:01:15

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 16-01-2007 à 23:04:50    

Je vois libws2_32.a dans mon installation de dev-cpp, et je pense que vous pouvez aussi le voir. Chez moi, cette bibliothèque est dans C:\Dev-Cpp\lib, et ça a l'air d'être la même chose pour vous.
 
La ligne de commande ne va pas parcequ'au lieu de "libws2_32", il faudrait avoir "-lws2_32" (sans les guillemets. En effet, autrefois, les programmeurs ont décidé de laisser tomber "ib" dans le préfixe "lib" pour gagner deux caractères sur la ligne de commande qui était assez courte.
 
Dans l'environnement de dev-cpp, il faut aller dans les options du projet, puis l'onglet paramètre. Vous devriez voir trois zones de saisie rectangulaires. Inscrivez "-lws2_32" (sans les guillemets) dans celle de droite, qui est celle du "Linker".
Ou bien, ouvrez makefile.win, et faîtes en sorte d'avoir la ligne :
LIBS =  -L"C:/DEV-CPP/lib" -lwsock32 -lwinmm -lws2_32
(Je ne suis pas certain qu'il faille -lmwindows, parce que j'ai un exemple avec -mwindows à la place.)

Reply

Marsh Posté le 17-01-2007 à 19:10:40    

merci pour vos réponses, euh je n'ai pas crée de projet, juste une simple source, mais si je dois en créer un je vais le faire.
J'ai modifier la ligne de l'éditeur de lien pour mettre simplement:
-lws2_32.a  -lwinmm -lmwindows
 
Résultat:  
  cannot find -lws2_32.a  
  ld returned 1 exit status  

Reply

Marsh Posté le 17-01-2007 à 19:17:30    

Il faut enlever le .a aussi, comme pour les autres libs.
Edit: Emmanuel te l'avait dit en plus :)


Message édité par IrmatDen le 17-01-2007 à 19:20:09
Reply

Marsh Posté le 17-01-2007 à 19:19:00    

en fait j'ai regardé dans C:\devcpp\lib et je n'ai pas de librairie lws2_32.a mais libws2_32.a
apres compilation, aucun changement par rapport au début:
 
Compilateur: Default compiler
Exécution de  gcc.exe...
gcc.exe "C:\send2.c" -o "C:\send2.exe"    -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" libws2_32.a  -lwinmm -lmwindows  
gcc.exe: libws2_32.a: No such file or directory
 
Exécution terminée
Compilation OK

Reply

Marsh Posté le 17-01-2007 à 19:20:28    

merci de ton aide IrmatDen, mais le résultat est le même ...

Reply

Marsh Posté le 17-01-2007 à 19:23:08    

DrOctopus a écrit :

merci de ton aide IrmatDen, mais le résultat est le même ...


Il faut mettre -lws2_32. On te l'a déjà dit 3000 fois. Si ça ne fonctionne pas, montre la ligne de commande et les messages d'erreur.

 


Message édité par Emmanuel Delahaye le 17-01-2007 à 19:24:45

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 17-01-2007 à 19:45:54    

lol c bon ca marche désolé :)
sinon j'ai carément enlevé -lmwindows, ca faisai une erreur, et je crois pas que cette librairie soit obligatoire
merci encore !

Reply

Marsh Posté le 17-01-2007 à 20:30:32    

sinon j'ai une autre question, lorsqu'on utilise les sockets avec un poste sous windows qui envoi des infos à un poste sous linux, est-ce que je dois installer samba, ou est ce que les sockets (qui sont écrit en C) permettent la compatibilité windows/linux ? (ce qui m'étonnerai lol)

Reply

Marsh Posté le 17-01-2007 à 20:30:32   

Reply

Marsh Posté le 17-01-2007 à 20:37:32    

Les connections TCP/IP (avec ou socket) peuvent être établies (de menuisier) sans que Samba soit installé, de même que ping, ftp, telnet, marchent sans avoir besoin de Samba.

Reply

Marsh Posté le 17-01-2007 à 20:39:48    

DrOctopus a écrit :

sinon j'ai une autre question, lorsqu'on utilise les sockets avec un poste sous windows qui envoi des infos à un poste sous linux, est-ce que je dois installer samba, ou est ce que les sockets (qui sont écrit en C) permettent la compatibilité windows/linux ? (ce qui m'étonnerai lol)


Aucun rapport. Samba, c'est du niveau applicatif (niveau 7) et ça concerne la gestion des fichiers sur un serveur GNU/Linux connecté à des clients Windows... Les sockets c'est très loin en dessous... Ce sont des tuyaux de données transparents. On en fait ce qu'on veut, du pire au meilleur.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 17-01-2007 à 20:45:36    

Reply

Marsh Posté le 17-01-2007 à 21:21:47    

oki c bien ske je pensai, merci bien !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed