Problème de link?

Résolu
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 - 18 juin 2007 à 10:52
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 - 18 juin 2007 à 18:04
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>
</title>
<meta name="GENERATOR" content="OpenOffice.org 2.2 (Linux)" />
<meta name="CREATED" content="20070618;10511400" />
<meta name="CHANGED" content="16010101;0" />
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
Salut,

ce matin je me suis
confronté à un petit problème (de link ?) sur un
binaire créé sous MS Visual Studio C++.
En gros
j'ai créé le binaire en console qui ne fonctionne que
sur des PC ayant MS Visual d'installé, sinon je me tape une
erreur me disant que mon exe n'est pas valide.... et comme je ne suis
pas un crack de dev sous windows, je ne sais pas vraiment si il faut
activer ou non telle ou telle option... je ne sais pas trop quoi
faire, donc si quelqu'un à la solution je suis preneur (vous
savez sûrement mieux que moi comment résoudre ce
problème) .

Note : Mon binaire utilise une lib static
qui elle même utilise winsock2 :
#include
<winsock2.h>
#pragma comment ( lib , "ws2_32.lib"
)











------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

9 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 juin 2007 à 16:38
Peut-être pas. J'ai fais l'expérience. J'ai renommé mon dll MSVCP80.dll. Il m'envoie bien une erreur mais pas de "DLL manquant". C'est plutôt ceci:
"L'application n'a pas réussi à s'initialiser correctement (0xc0000034). Cliquez sur OK pour arrêter l'application"

Ton prog est en release ? Essais de te passer du RunTime. Pour ça, va dans Projet->Propriétés de ... ->Propriété de configuration->C/C++->Génération de code->Bibliothèque runtime et change pour Multithread (/MT)
Ça devrait générer un exe sans dépendance aux runtimes.

C++ (@++)<!--
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 juin 2007 à 17:28
Ouais ça arrive souvent avec mes lib perso. Normalement, j'ignore l'avertissement sinon tu peux recompiler tes lib en changeant l'option situé à "Projet->Propriété de ...->Propriétés de configuration->C/C++->Avancé->Omettre les noms de bibliothèque par défaut" par "Oui (/Zl)"

C++ (@++)<!--
3
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
18 juin 2007 à 18:04
Salut,

bon oki j'ai recompilé ma lib static avec /Zl + /MT et j'ai également recompilé l'application console avec l'option /MT et maintenant ça baigne :P

Ecore merci [auteurdetail.aspx?ID=617077 SAKingdom] c'est cool ;)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
18 juin 2007 à 14:23
essai d'ajouter dans les option de ton projet , cote editeur de lien ws2_32.lib normalement tu y a kernel32 user32 enfin ce genre de chose quoi ^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 juin 2007 à 15:39
Que dit l'erreur exactement ? C'est une erreur à la compilation ou linkage ou une erreur à l'exécution.

C++ (@++)<!--
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
18 juin 2007 à 15:45
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>
</title>
<meta name="GENERATOR" content="OpenOffice.org 2.2 (Linux)" />
<meta name="CREATED" content="20070618;15454600" />
<meta name="CHANGED" content="16010101;0" />
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
Salut,

il s'agit d'une erreur
d'exécution et elle ne dit pas grand chose sauf que
l'exécutable n'est pas un exe valide......
Pour rappel la
compilation et le link se passent bien, de plus j'arrive à
exécuter ce code sur des PC ayant VS d'installé....

Je
me demande juste si je n'oublie pas de faire un truc .... un link à
ajouter ? une option à cocher ou décocher ?

D'après
ce que j'en ai vu sur le web ce problème est assez récurent
quand on fait un appel à 'system' hors ici je ne fais que du
C++ le plus basique possible et deux trois appels aux fonctions de
winsock2.h











------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 juin 2007 à 15:56
Ouais ça dit pas beaucoup cette erreur.

On dirait une erreur de runtime. Ton programme est bien en console et programmé en C++ ? Il devrait donc être lié à MSVCP80.dll (si tu utilises VC++ 2005). Cependant, je n'ai jamais vue cette dll ailleurs que sur un PC ayant VC++ 2005 d'installé. C'est peut-être ça.

C++ (@++)<!--
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
18 juin 2007 à 16:25
Salut,

"Ton programme est bien en console et programmé en C++"
oui sur et certain.

mais c'est qu'il ne me dit rien de plus.... normalement si il te manque une dll il te le dit nan ?
voici la capture de l'erreur :

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
18 juin 2007 à 17:20
Salut,

oki c'est fait.... mais maintenant il me sort que MVCRT est en conflit avec un autre truc et faut que j'utilise /NODEFAULTLIB:library ce que j'ai fais mais rien decidement c'est chiant VS il faut perdre du temp pour rien... ce rien que pour la configuration d'un projet.....

en tout cas un grand merci à toi [auteurdetail.aspx?ID=617077 SAKingdom]

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0