chibix
Messages postés3Date d'inscriptiondimanche 18 mars 2007StatutMembreDernière intervention18 mars 2007
-
18 mars 2007 à 11:47
chibix
Messages postés3Date d'inscriptiondimanche 18 mars 2007StatutMembreDernière intervention18 mars 2007
-
18 mars 2007 à 12:43
Bonjour,
Je viens d'installer VC C++ express 2005 avec son SP1 et j'ai aussi installé le microsoft SDK.
J'ai compilé un programme tout bête avec un printf () et ça tourne niquel. Seulement, si je l'essaye sur
un autre pc, eplorer me dit que le programme a une mauvaise configuration, le réinstallé pourrait corriger le
problème ! Et en mode commande, il me dit simplement qu'il ne peut éxécuter le programme...
Pourriez-vous m'éclaircir sur le pourquoi du comment et m'aider çà trouver une solution !
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 18 mars 2007 à 12:04
Salut,
VC Express utilise msvcr80.dll pour supporter les fonctions de la CRT. Cette dll n'est pas présente par défaut dans Windows. Pour l'inclure statiquement dans ton EXE, regarde ce tutorial:
Win32_VCEpress
chibix
Messages postés3Date d'inscriptiondimanche 18 mars 2007StatutMembreDernière intervention18 mars 2007 18 mars 2007 à 12:31
Merci de ta réponse rapide.
En effet en mettant multithread et pas multithread dll ca marche. Seulement, je dois compiler un projet avec l'option multithread dll sinon je ne peux pas linker. Comment puis-je faire alors. Note que j'ai installé les dll sur l'autre pc et qu'elle sont bien trouvées j'ai vérifié avec le ptit programme 'depends'.
chibix
Messages postés3Date d'inscriptiondimanche 18 mars 2007StatutMembreDernière intervention18 mars 2007 18 mars 2007 à 12:43
En fait j'essaye de compiler ogre, et ils disent clairement qu'il faille mettre l'option multithread dll.
Remarque que l'option multithread tout court passe en release mais pas en debug. Toutefois, la version release comme ça plante direct sur une autre machine. J'ai vu que quelqu'un parlait de vcredistx86. Je dois le redistribuer ou quoi ?
Un exemple d'erreur de link ( elles sont toutes pareilles ) :
test.obj : error LNK2005: "public: void __thiscall std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> >::`vbase destructor'(void)" (??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ) déjà défini(e) dans msvcprtd.lib(MSVCP80D.dll)