cs_fuliculi
Messages postés43Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 3 mai 2010
-
26 oct. 2004 à 18:55
cs_fuliculi
Messages postés43Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 3 mai 2010
-
27 oct. 2004 à 09:48
Bonjour à tous et à toute,
je bloque sur un problème de linkage qui semble trivial, j'ai les messages suivants :
main.obj : error LNK2005: "class Ccamera gCam" (?gCam@@3VCcamera@@A) already defined in load_scene.obj
Release/Raytracing.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
C'est un simple fichier de variables globales (une seule pour le moment...)
je fais un essai avec une seule variable et ça plante dessus.
Désolé de ne pas mettre le code entier, y'en a pour quelque milliers de lignes (raytracing oblige) et quelques centaines pour les fichiers nommés.
Quelqu'un connait une solution simple? J'ai cherché dans le forum, je n'ai pas trouvé de réponse à ce même problème.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 27 oct. 2004 à 08:58
Il faut surtout éviter de déclarer des variables dans des .h, ainsi tu évitera ces problèmes. Pour partager une variable globale, il faut la déclarer dans un .c/cpp et pour les autres modules qui veulent y accéder, il faut la déclarer en tant que extern.
cs_fuliculi
Messages postés43Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 3 mai 20106 27 oct. 2004 à 09:48
Merci pour l'info, pour le moment j'ai tout mis dans un *.h et ça marche comme ça. Si y'a soucis, je repasserais tout dans un *.cpp
Le seul inconvénient est la tonne de extern en début de *.cpp quand j'ai 20 variables globales, mais bon, ça rend le programme plus clean quand même. En plus, ça m'a viré 1 warning de Purify ;)