Probleme de link sous VC6 [C/C++] - C - Programmation
Marsh Posté le 02-04-2004 à 08:11:08
Personne n'a connu ce genre de pb..?
Tant pis pour moi alors...
Marsh Posté le 02-04-2004 à 08:43:00
Es-tu sûr d'avoir choisis Multi-thread dans ton projet en release ?
Marsh Posté le 02-04-2004 à 12:13:20
vi....
En changeant quelques options... J'obtiens maintenant ce message d'erreur la...
Generating Code...
Linking...
nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj)
Release/producer.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Marsh Posté le 02-04-2004 à 13:38:19
vi ... donc tu n'étais pas en multithread
et cette nafxcw.lib c'est nécessaire ?
sinon tu as une option de linkage pour autoriser les doubles définitions :
/FORCE:MULTIPLE
Marsh Posté le 02-04-2004 à 13:52:17
J'ai lu ca dans la doc...
Mais comme je ne maitrise pas encore bien VC++6...
Ca se met ou.....?
Marsh Posté le 02-04-2004 à 14:30:18
Dans les propriétés du projet, onglet Link, et là tu écrit ça à la suite des .lib dans "Objects\Library modules :"
Marsh Posté le 02-04-2004 à 14:31:18
Maintenant ce n'est pas très propre tout de même ...
J'ai dû m'en servir une fois sur un projet que j'ai récupéré et que je voulais compiler, mais bon ..
Marsh Posté le 02-04-2004 à 14:34:03
C'est clair que ce n'est pas tres propre.. De toute facon, le projet n'est pas propre du tout puisqu'il mélange du C et du C++...
.
Mais j'aimerais bien compiler en release au moins une fois le projet que j'ai récupéré au boulot...
Maintenant, une fois mis ton option, j'ai cette erreur la... Typique apparemment.. mais je ne sais pas ocmment m'en débarasser...
Si t as une idée...
c:\AnimaSrc\sqldrv.c(5) : error C2099: initializer is not a constant
provenant de cette ligne : static FILE *errout=stdout;
Merci!
Marsh Posté le 02-04-2004 à 15:13:16
bizarre, ça devrait passer ça, stdout est normalement aussi un FILE *
Me sent incompetent là ...
Marsh Posté le 02-04-2004 à 15:36:01
J'ai peur que ce soit une merde... du genre mélange en C et C++...
Et vu que le prog qui plante est un prog C.. selon la doc on n'a pas le droit..
Bref...
Marsh Posté le 02-04-2004 à 15:44:10
Pas le droit ?
Pour moi on a le droit de mélanger.
T'as regardé tout de même si stdout n'était pas redefini avec un autre type au cas où ?
Marsh Posté le 02-04-2004 à 16:12:14
Je voulais dire que ce type d'erreur était typique.. puisqu'on n'a pas le droit de faire ce genre de chose en C (doc de VC++ a propos du code d'erreur..)
Marsh Posté le 01-04-2004 à 16:50:33
Dans un projet sous Visual C++ 6, j'ai un mélange de programme en C et en C++ (suite a un portage rapide d'une version UNIX en version Windows).
En compilant en mode DEBUG, pas de probleme.
Mais en compilant en mode RELEASE, j'ai ces erreurs la...
Linking...
nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBC.lib(delete.obj)
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Release/producer.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
J'ai regardé dans MSDN... mais j'avoue que je ne sais pas trop quoi en penser et surtout comme résoudre...
Si quelqu'un a eu ces problemes... je suis preneur de solutions ou de bons conseils.
MErci a tous