begin process at 2012 05 29 07:50:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

LNK2005 et LNK1169


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

LNK2005 et LNK1169

mardi 26 octobre 2004 à 18:55:18 | LNK2005 et LNK1169

fuliculi

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.

mon programme est organisé ainsi :

main.cpp :
#include <global.h>
#include <load_scene.h>
...

load_scene.cpp :
#include <global.h>
#include <load_scene.h>
...

<global.h>
#ifndef _CAMERA_H_
#define _CAMERA_H_
#include <camera.h>
Ccamera gCam;
#endif


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.
mardi 26 octobre 2004 à 19:10:51 | Re : LNK2005 et LNK1169

fuliculi

Loi de Murphy oblige...
Après plusieurs mois de recherche, c'est forcement 2mn après avoir posté ce post que je trouve 'une ' solution...

main.cpp :
#include <global.h>
#include <load_scene.h>
...

load_scene.cpp :
#include <load_scene.h>
#include <camera.h> <--------- A la place de #include <global.h>
extern gCam <----------- Nouvelle ligne
...

<global.h>
#ifndef _CAMERA_H_
#define _CAMERA_H_
#include <camera.h>
Ccamera gCam;
#endif


En esperant que ça puisse aider quelqu'un...
mercredi 27 octobre 2004 à 08:58:53 | Re : LNK2005 et LNK1169

ymca2003

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.
mercredi 27 octobre 2004 à 09:48:22 | Re : LNK2005 et LNK1169

fuliculi

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 ;)


Cette discussion est classée dans : include, error, lnk2005, lnk1169, gcam


Répondre à ce message

Sujets en rapport avec ce message

problem exception runtime_error [ par fafouet ] je veux developper un petit exemple qui doit provoquer une runtime_errorje n'arrive pas a la produire je ne sais pas trop comment m'en servir voici mo Probleme de linkage error LNK2005 [ par gribgrib ] Bonjour,j'ai toujours la meme erreur qui revient a la compilation:usine.obj : error LNK2005: "public: __thiscall CRatio::CRatio(char *,int,char *)" (? Lib ADO sous Visual C++ [ par callaghan1981 ] j ai inserer la librairie .h et les lib ds le projetmais ca na marche pas tro.si je compile #include"ADOlib.h"il me met une erreurcompiling...connect. error LNK2001: unresolved external symbol _gotoxy [ par DevClyde ] Bonjour tout le monde! Voilà je bosse sur une gestion de contrat en C où je fais appel aux commandes "gotoxy", "textbackground", "textcolor" et "clrsc afxdb.h [ par keyserkiller ] slt g un programme ki doi gerer des base de donnees,jimporte dc la biblio afxdb.h et g besion de la biblio windows.hor si je l'ai importe dan cette or #include [ par hm1964 ] Je m'arrache les cheveux qui me restent avec le problème suivant :J'ai fait un programme simple avec VC++6.0 une fenêtre, un menu et un peu de texte d error LNK2005 que faire ? vite je v me pendre !!!! [ par Milhouse57 ] Voila alors je debute en C++, et je dois faire un projet avec un arbre binaire !! (visual C++ 6.0)Le probleme c que lorsque je build, j'ai toutes les Problème stl et vc++ [ par VinceExtense ] j'ai recherché de partout mais rien pour résoudre mon problème.j'utilise visual c++ et je veux utiliser une multimap, donc j'inclus :#include mais ens Allegro...allez gros :o( [ par MrGecko ] bonjour et merci d'avance :o) J'essai pour la première fois Allegro. J'utilise Dev-C++  4.9.9.1 et j'ai télécharger le package allegro depuis  son in error LNK2005 problème de lien avec multuple définition [ par chamoine ] Pour faire cour voici le message d'erreur: strmiids.lib(strmiids.obj) : error LNK2005: _IID_IDirectDrawColorControl already defined in GameMachine.obj


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales