LNK2005 et LNK1169, sur VS2008 avec SDL

Résolu
Metalbobinou Messages postés 42 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 19 septembre 2012 - 28 févr. 2009 à 04:37
Metalbobinou Messages postés 42 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 19 septembre 2012 - 28 févr. 2009 à 16:08
Bonjour, mes erreurs sont classiques d'apres google, mais je n'ai pas encore compris comment les resoudre... (meme en fouiannt un peu)...
Je connais vite fais le C/UNIX, mais pas le C/Windows via Visual Studio... donc je em suis alnce dans un p'tit projet avec SDL !
Pour le moment je veux juste que ca "compile"... :P

Mais j'ai ca en erreur :

1>------ Début de la génération : Projet : Tayst, Configuration : Debug Win32 ------
1>Compilation en cours...
1>init.c
1>main.c
1>Génération de code en cours...
1>Édition des liens en cours...
1>main.obj : error LNK2005: _proj_init déjà défini(e) dans init.obj
1>main.obj : error LNK2005: _proj_stop déjà défini(e) dans init.obj
1>C:\Documents and Settings\HP_Administrateur\Mes documents\Visual Studio 2008\Projects\Tayst\Debug\Tayst.exe : fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\HP_Administrateur\Mes documents\Visual Studio 2008\Projects\Tayst\Tayst\Debug\BuildLog.htm"
1>Tayst - 3 erreur(s), 0 avertissement(s)
======== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========



Mon code est "tres simple" :
- main.c :

#include "init.c"

int main(int argc, char *argv[])
{
int i;

i=proj_init();

i=proj_stop();
return 0;
}



- init.c :

#include "init.h"

int proj_init()
{
// Chargement de la vidéo, de l'audio et du timer
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER);
return 0;
}



int proj_stop()
{
SDL_Quit();
return 0;
}



-init.h :

#ifndef INIT_H
#define INIT_H

#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>


int proj_init();
int proj_stop();

#endif



Je ne vois pas trop les problemes :/
J'ai lie des trucs qu'il en fallait pas lier ?

J'en ai eu un autre avant... mais il etait lie a SDL je crois (et il arrivera probablement quand celui la sera regle :P)

Merci d'avance :)

3 réponses

SebLinck Messages postés 212 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 23 juin 2011
28 févr. 2009 à 13:10
Non, dans le main tu inclus le fichier init.c ...
normalement c'est (les déclarations des fonctions qui sont inclusent ( init.h )

Cordialement,
Sébastien.
3
SebLinck Messages postés 212 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 23 juin 2011
28 févr. 2009 à 13:08
Salut,

Je crois que ta fonction : _proj_init
est définie dans init.c et main.c.

Cordialement,
Sébastien.
0
Metalbobinou Messages postés 42 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 19 septembre 2012
28 févr. 2009 à 16:08
Merci beaucoup ! Effectivement !

Il fallait simplement que dans main.c je fasse : #include "init.h"
Et dans init.c : #include "init.h"

J'avais oublie l'ordre des includes ! :D
Meric beaucoup beaucoup ! :)
0
Rejoignez-nous