:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Développement Amateur :: > Aide au développement

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 16/01/2009, 16h29   #1
fooshi
Membre confirmé
 
Date d'inscription: 09/12/2008
Messages: 63
Par défaut Scinder le programme en plusieurs fichiers

Bonjour,
Mon programme commence a etre long et j'aimerais scinder mon programme en plusieurs fichiers mais je n'y arrive pas.

a la base, j'ai :

Code:
#include <PA9.h>...

int guitare();


int main()
{
guitare();

}

guitare()
{
...
}
mais ce que j'aimerais c'est mettre ma fonction guitare dans un fichier guitare.c.

comment faire ? faut t'il inclure un header dans guitare.c pour redefinir les variables globales?

Merci d'avance.

Dernière modification par Yodajr ; 10/02/2009 à 02h23.
fooshi est déconnecté   Réponse avec citation

Publicité

Vieux 16/01/2009, 16h35   #2
Le Rodeur
Membre confirmé
 
Date d'inscription: 21/10/2007
Messages: 225
Par défaut

Un peu long a expliquer, j'ai moi même eu du mal a piger, je m'y suis mis ya pas longtemps, cherches un peu dans les topics de ce mois tu devrais trouver des posts a ce sujet (variables globales etc)
__________________

NDS LITE - M3 Ds Simply - PaLib
Le Rodeur est déconnecté   Réponse avec citation
Vieux 16/01/2009, 16h46   #3
Glyca
Membre confirmé
 
Date d'inscription: 19/12/2008
Localisation: Île de France
Messages: 85
Par défaut

Je t'ai mis des arguments dans tes fonctions pour que tu voie ce que ça fait.

guitare.h
Code PHP:
#ifndef GUITARE_H //Évite les multiples inclusions
#define GUITARE_H //Mettre un nom différent dans chaque fichier évidement

//prototypes des fonctions
extern int guitare();
extern int basse(short int note);

#endif 
guitare.cpp
Code PHP:
#include "guitare.h"

int guitare()
{
// code de la fonction
}

int basse(short int note)
{
// code de la fonction

main.cpp
Code PHP:
#include "guitare.h"

int main()
{
guitare();
basse(5);
PA_WaitFor(Pad.Newpress.Anykey);
return 
0;

Voila
__________________
Glyca
“Le chemin le plus court d'un point à un autre est la ligne droite, à condition que les deux points soient bien en face l'un de l'autre.„
Matos : NDSL|R4|EZ-Flash 3in1(new)|µSD 1 et 2 Go
Ordi : Vista|Ubuntu|Debian

Dernière modification par Dr.Vince ; 16/01/2009 à 17h39.
Glyca est déconnecté   Réponse avec citation
Vieux 16/01/2009, 17h48   #4
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

la même chose mais avec quelques petites modifcations:

Code PHP:
#ifndef GUITARE_H //Évite les multiples inclusions
#define GUITARE_H //Mettre un nom différent dans chaque fichier évidement

//prototypes des fonctions
// ajout des extern 
extern int guitare();
extern int basse(short int note ); // on peut mettre le nom des variables, c'est mieux si tu utilises un éditeur avec complétion

#endif 
guitare.cpp
Code PHP:
#include "guitare.h" // inutile dans notre cas, faut le faire uniquement si tu écrit pas tes fonctions dans le bon ordre, ou s'il y a des nouveaux types

int guitare()
{
// code de la fonction
}

int basse(short int note)
{
// code de la fonction

main.cpp
Code PHP:
#include "guitare.h"

int main()
{
guitare();
basse(5);
PA_WaitFor(Pad.Newpress.Anykey);
return 
0;

__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 16/01/2009, 20h05   #5
t4ils
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: Morangis ( 91 )
Messages: 2 754
Voir les codes amis Wii
Par défaut

ha bah dis donc, faudrait que je fasse également ça de mon côté
parce que 7000 lignes dans un seul fichier c'est pas gérable du tout et la compilation prend 3 plombes pour un caractère de plus ou de moins
__________________
Un renard, en plus de voler, ca code !

t4ils est déconnecté   Réponse avec citation
Vieux 16/01/2009, 21h33   #6
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Hummm je fait probablement mal, mais j'ai jamais utilisé vos ifndef...

J'ai un gros header.h avec toutes mes déclarations de variables, pointeurs, structures, tableaux, etc dedans (vince m'a dit que c'était pas bien, mais bon, pour de petits projets amateurs, ça suffit pas ?), du genre :

header.h
Code PHP:
#include <PA9.h>

int variable;

char *texte;

int guitare();
int basse(short int note ); 

le main.c
Code PHP:
#include "header.h"

int main()
{
   
guitare();
   
basse(5);
   
PA_WaitFor(Pad.Newpress.Anykey);
   return 
0;


le guitare.c
Code PHP:
#include "header.h"

int guitare()
{
   
// code de la fonction
}

int basse(short int note)
{
   
// code de la fonction

Ne pas oublier de rajouter dans le makefile le guitare.o à la compilation (fait automatiquement avec le makefile de base des samples PAlib je crois).
Et pour chaque nouveau fichier .c que je crée, suffit de mettre en haut :
#include "header.h"
et ça roule...

Dernière modification par Yodajr ; 16/01/2009 à 21h39.
Yodajr est déconnecté   Réponse avec citation
Vieux 16/01/2009, 22h35   #7
t4ils
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: Morangis ( 91 )
Messages: 2 754
Voir les codes amis Wii
Par défaut

bon voilà, j'ai découpé un projet en cours et ça marche du tonnerre

1300 lignes dans le main.c maintenant réparties dans 11 fichiers .c, ça fait plaisir
et ça fera plaisir au compilo surtout

merci pour ce topic
__________________
Un renard, en plus de voler, ca code !

t4ils est déconnecté   Réponse avec citation
Vieux 17/01/2009, 02h17   #8
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

si yoda, c'est déjà un très bon début de faire comme ça, car au moins ça te permet de découper ton projet en plusieurs fichiers .c
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 17/01/2009, 12h07   #9
Cid2Mizard
Membre confirmé
 
Date d'inscription: 20/11/2007
Localisation: Maubeuge (59)
Messages: 223
Par défaut

Moi je sais que c'est mal, mais je mets tout dans le .h sans créer le .c et ça fonctionne aussi .

exemple :

main.c
Code:
#include "fonction.h"

int main()
{
   guitare();
   basse(5);
   PA_WaitFor(Pad.Newpress.Anykey);
   return 0;
}

fonction.h
Code:
int guitare()
{
   // code de la fonction
}

void basse(int valeur)
{
   // code de la fonction
}
Mais est-ce si mal que ça ?
__________________
www.nintendomax.com
Nintendomax.com 100% hack - 0% warez
Cid2Mizard est déconnecté   Réponse avec citation
Vieux 17/01/2009, 12h17   #10
Le Rodeur
Membre confirmé
 
Date d'inscription: 21/10/2007
Messages: 225
Par défaut

nan c'est pas mal, permets d'éclaircir le debut du code du main, sinon tu te retrouverais avec 500 lignes avant le main() et ça c'est pas top pour coder...
__________________

NDS LITE - M3 Ds Simply - PaLib
Le Rodeur est déconnecté   Réponse avec citation
Vieux 17/01/2009, 17h49   #11
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

si c'est mal et complètement inutile, à part le fait de pas avoir plusieurs milliers de lignes dans ton main.c

d'ailleurs tu peux appeler ton fichier fonction.c au lieu de fonction.h puisque ça revient à ça en fait, de l'inclusion de code source dans ton main.c
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 17/01/2009, 17h59   #12
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

De plus, dites moi si je me trompe, mais en faisant comme ça (tes fonctions dans des .h), tu ne gagne rien au niveau temps de compilation, non ?
Car à chaque fois ton compilo se (re)tape tout...
Yodajr est déconnecté   Réponse avec citation
Vieux 09/02/2009, 18h53   #13
severum
Membre
 
Date d'inscription: 09/02/2009
Localisation: corse
Messages: 31
Par défaut

je relance un peu le sujet car j'ai suivi ce que vous avez dit et sa ne marche pas, et j'ai beau chercher je ne trouve pas.

Donc mes fichiers "main.c", "functions.h" et "functions.c" se trouve dans le même dossier
Donc voici le code exacte de chaque page ainsi que l'erreur de compilation

Main.c
Code:
//include libraries and functions
#include <PA9.h>
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"
#include "compo_top.h"
#include "compo_bottom.h" 
#include "functions.h"




//main function
int main(void)
{
    //initialization Palib
    PA_Init();
    PA_InitVBL();

		  //infinite loop to keep the program activated
        while(1)
		  	{                
                PA_WaitForVBL();
        	}

    	  return 0;
}
Maintenant l'header
functions.h
Code:
#ifndef functions_H 
#define functions_H 

//list of functions
extern void EcranTitre(void);
extern void EcranTitre2(void);
extern void Credit(void);

#endif
et enfin functions.c
Code:
#include "functions.h"


//function EcranTitre
void EcranTitre(void)
{
//Fonction ecran titre 1	
}


void EcranTitre2(void)
{
//Fonction ecran titre 2
} 


void Credit(void)
{
//Fonction cédit
}
et voici l'erreur

Code:
C:\devkitPro\Projects\Premier>make clean
clean ...Premier

C:\devkitPro\Projects\Premier>make
compo_bottom.gif
compo_top.gif
functions.c
c:/devkitPro/Projects/Premier/source/functions.c: In function 'EcranTitre':
c:/devkitPro/Projects/Premier/source/functions.c:8: warning: implicit declaratio
n of function 'PA_Init8bitBg'
c:/devkitPro/Projects/Premier/source/functions.c:10: warning: implicit declarati
on of function 'PA_SetBrightness'
c:/devkitPro/Projects/Premier/source/functions.c:12: warning: implicit declarati
on of function 'PA_LoadGif'
c:/devkitPro/Projects/Premier/source/functions.c:12: error: 'compo_top' undeclar
ed (first use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:12: error: (Each undeclared ide
ntifier is reported only once
c:/devkitPro/Projects/Premier/source/functions.c:12: error: for each function it
 appears in.)
c:/devkitPro/Projects/Premier/source/functions.c:13: error: 'compo_bottom' undec
lared (first use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:14: error: 's8' undeclared (fir
st use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:14: error: expected ';' before
'i'
c:/devkitPro/Projects/Premier/source/functions.c:16: error: 'i' undeclared (firs
t use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:20: warning: implicit declarati
on of function 'PA_WaitForVBL'
c:/devkitPro/Projects/Premier/source/functions.c:23: error: 's16' undeclared (fi
rst use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:23: error: expected ';' before
'time'
c:/devkitPro/Projects/Premier/source/functions.c:26: error: 'time' undeclared (f
irst use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:26: error: 'Pad' undeclared (fi
rst use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:26: error: 'Stylus' undeclared
(first use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:39: warning: implicit declarati
on of function 'PA_ResetBgSys'
c:/devkitPro/Projects/Premier/source/functions.c: In function 'EcranTitre2':
c:/devkitPro/Projects/Premier/source/functions.c:50: warning: implicit declarati
on of function 'PA_EasyBgLoad'
c:/devkitPro/Projects/Premier/source/functions.c:50: error: 'menu' undeclared (f
irst use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:51: error: 'back' undeclared (f
irst use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:54: error: 'Pad' undeclared (fi
rst use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:59: warning: implicit declarati
on of function 'PA_WaitFor'
c:/devkitPro/Projects/Premier/source/functions.c: In function 'Credit':
c:/devkitPro/Projects/Premier/source/functions.c:66: error: 'back' undeclared (f
irst use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:67: error: 'credit' undeclared
(first use in this function)
c:/devkitPro/Projects/Premier/source/functions.c:69: error: 'Stylus' undeclared
(first use in this function)
make[1]: *** [functions.o] Error 1
make: *** [build] Error 2

C:\devkitPro\Projects\Premier>pause
Appuyez sur une touche pour continuer...
Si j'ai bien compris l'erreur , rien n'est déclarée, donc il n'arrive pas a acceder a mon fichier functions.c ou alors c'est le fichier functions.o qu'il manque mais je n'ai pas compris comment l'ajouter au fichier Makefile
severum est déconnecté   Réponse avec citation
Vieux 09/02/2009, 20h11   #14
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Quand il essaye de compiler ton functions.c, il ne trouve aucune référence à PAlib, donc il plante

Dans tout le topic, il n'y a pas qu'une seule solution
Yodajr est déconnecté   Réponse avec citation
Vieux 09/02/2009, 21h29   #15
severum
Membre
 
Date d'inscription: 09/02/2009
Localisation: corse
Messages: 31
Par défaut

Donc si j'ai bien compris, attention le cerveau c'est mis en route bon pas trés longtemps

Les includes présent dans le fichier main.c doivent donc se trouvé aussi dans functions.c, donc jusque la sa va la compilation démarre et les erreurs cité plus haut on disparu mais d'autres apparaisse

Code:
C:\devkitPro\Projects\Premier>make clean
clean ...Premier

C:\devkitPro\Projects\Premier>make
compo_bottom.gif
compo_top.gif
functions.c
main.c
arm-eabi-g++ -g -mthumb-interwork -mno-fpu -LC:/devkitPro/palib/lib/lib -Wl -spe
cs=ds_arm9.specs compo_bottom.o compo_top.o functions.o main.o -LC:/devkitPro/pa
lib/lib/lib -lpa9 -L/c/devkitPro/libnds/lib -lfat -lnds9 -ldswifi9 -o build.elf
main.o:(.rodata+0x0): multiple definition of `menu_Info'
functions.o:(.rodata+0x0): first defined here
main.o:(.rodata+0xc): multiple definition of `menu_Map'
functions.o:(.rodata+0xc): first defined here
main.o:(.rodata+0x60c): multiple definition of `menu_Tiles'
functions.o:(.rodata+0x60c): first defined here
main.o:(.rodata+0x4e4c): multiple definition of `back_Info'
functions.o:(.rodata+0x4e4c): first defined here
main.o:(.rodata+0x4e58): multiple definition of `back_Map'
functions.o:(.rodata+0x4e58): first defined here
main.o:(.rodata+0x5458): multiple definition of `back_Tiles'
functions.o:(.rodata+0x5458): first defined here
main.o:(.rodata+0x9e58): multiple definition of `credit_Info'
functions.o:(.rodata+0x9e58): first defined here
main.o:(.rodata+0x9e64): multiple definition of `credit_Map'
functions.o:(.rodata+0x9e64): first defined here
main.o:(.rodata+0xa464): multiple definition of `credit_Tiles'
functions.o:(.rodata+0xa464): first defined here
main.o:(.rodata+0xdde4): multiple definition of `menu_Pal'
functions.o:(.rodata+0xdde4): first defined here
main.o:(.rodata+0xdeac): multiple definition of `back_Pal'
functions.o:(.rodata+0xdeac): first defined here
main.o:(.rodata+0xdfec): multiple definition of `credit_Pal'
functions.o:(.rodata+0xdfec): first defined here
main.o:(.data+0x0): multiple definition of `menu'
functions.o:(.data+0x0): first defined here
main.o:(.data+0x18): multiple definition of `back'
functions.o:(.data+0x18): first defined here
main.o:(.data+0x30): multiple definition of `credit'
functions.o:(.data+0x30): first defined here
collect2: ld returned 1 exit status
make[1]: *** [/c/devkitPro/Projects/Premier/Premier.elf] Error 1
make: *** [build] Error 2
Mais ici je vois que l'on parle des fichiers ".o" que je n'ai jamais traité pour le moment et il me met des "multiple definition" pour tout mes background
severum est déconnecté   Réponse avec citation
Vieux 09/02/2009, 22h15   #16
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

tu inclus uniquement les fichiers dont tu as besoin dans chaque fichier, que ce soit dans ton main.c ou dans ton functions.c

par exemple, si tes gfx sont uniquement utilisées dans functions.c bah tu les inclus pas dans ton main.c etc....
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 09/02/2009, 22h36   #17
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Fait comme je fait, c'est simple et efficace, crée un header.h avec les déclarations qui te serviront tout le temps (la lib, variables globales, fonctions, etc...) et inclut ce header.h dans tous tes .c
(regarde mon post plus haut)

Sinon oui, comme dit vince, tout ce qui est background and co, ça doit être déclaré qu'une fois.

PS : ne te préoccupe pas des .o, le makefile de PAlib s'en charge tout seul.
Yodajr est déconnecté   Réponse avec citation
Vieux 10/02/2009, 00h37   #18
severum
Membre
 
Date d'inscription: 09/02/2009
Localisation: corse
Messages: 31
Par défaut

Je vous remercie, c'est explication m'ont fortement aidé.

bonne soirée
severum est déconnecté   Réponse avec citation
Vieux 11/04/2009, 18h06   #19
silwek
Membre
 
Date d'inscription: 09/04/2009
Localisation: Le train Lyon-Annecy
Messages: 24
Voir les codes amis Nintendo DS
Par défaut

Bonjour à tous,
Je me permet de poser mon problème ici car je pense qu'il dans la même lignée
J'essaye de structurer un peu mon code, je suis passé par la première étape qui est de le séparer en plusieurs fichiers.
Maintenant j'aimerai regrouper mes fichiers de classes dans des dossiers différents. Malheureusement quand je fait ça pose problème .

Code:
main.o: In function `main':
c:/Donnees/toshen/ToshenSubversion/dev_cpp/EclipseProject/ToshenProject/source/main.cpp:16: undefined reference to `GlobalViewController::GlobalViewController()'
c:/Donnees/toshen/ToshenSubversion/dev_cpp/EclipseProject/ToshenProject/source/main.cpp:18: undefined reference to `GlobalViewController::launch()'
c:/Donnees/toshen/ToshenSubversion/dev_cpp/EclipseProject/ToshenProject/source/main.cpp:21: undefined reference to `GlobalViewController::~GlobalViewController()'
c:/Donnees/toshen/ToshenSubversion/dev_cpp/EclipseProject/ToshenProject/source/main.cpp:21: undefined reference to `GlobalViewController::~GlobalViewController()'
En gros on dirait qu'il ne trouve pas ma classe alors que j'ai bien inclue le .h dans mon main. Par contre quand j'inclue le .cpp au lieu du .h ça remarche mais j'aime pas trop ça, c'est moche! Comment faire pour que le .h suffise ?
J'ai cherché un peu partout mais je n'ai pas trouvé (j'ai peut-être mal cherché ).
__________________
Silwek ~ Toshen Project ~
silwek est déconnecté   Réponse avec citation
Vieux 11/04/2009, 22h20   #20
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

tu peux mettre un exemple de code quand tu fais ce include et indiquer l'arborescence des fichiers/répertoire qui va avec ?
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 12/04/2009, 14h30   #21
CarbonACat
Membre confirmé
 
Date d'inscription: 16/11/2008
Localisation: Dreux
Messages: 150
Par défaut

(je voulais juste dire une chose: séparer ses fichiers *.h en plusieurs est utile par exemple quand on réutilise des fonctions d'un projet à un autre, un peu à la manière d'une librairie. Aussi, cela permet, pour autant que l'on inclus que les *.h nécessaires à chaque fois, de minimiser les temps de recompilation lorsque l'un des dits *.h est modifié. Les deux usages sont adeptes du "Si ça ne me concerne pas, j'en ai rien à faire" )
__________________
Meow!
CarbonACat est déconnecté   Réponse avec citation
Vieux 12/04/2009, 17h22   #22
silwek
Membre
 
Date d'inscription: 09/04/2009
Localisation: Le train Lyon-Annecy
Messages: 24
Voir les codes amis Nintendo DS
Par défaut

Alors voici mon arborescence :


Ma Classe A qui n'est pas dans un répertoire :
ClasseA.h
Code:
#ifndef CLASSEA_H_
#define CLASSEA_H_

class ClasseA {
public:
	ClasseA();
	virtual ~ClasseA();
};

#endif /* CLASSEA_H_ */
ClasseA.cpp
Code:
#include "ClasseA.h"

ClasseA::ClasseA() {
}

ClasseA::~ClasseA() {
}

Ma classe B qui est dans un répertoire :
ClasseB.h
Code:
#ifndef CLASSEB_H_
#define CLASSEB_H_

class ClasseB {
public:
	ClasseB();
	virtual ~ClasseB();
};

#endif /* CLASSEB_H_ */
ClasseB.cpp
Code:
#include "ClasseB.h"

ClasseB::ClasseB() {
}

ClasseB::~ClasseB() {
}

Mon main.cpp :
Code:
#include "ClasseA.h"
#include "repertoire/ClasseB.h"

// Function: main()
int main(int argc, char ** argv)
{
	ClasseA instanceA;
	ClasseB instanceB;

	return 0;
}

Si je commente la création de l'instanceB ça compile comme il faut.
Au sinon je laisse l'instanciation de ma classe B ça me met ça :
Code:
main.o: In function `main':
c:/Donnees/Programmation/c/NDS/Test/source/main.cpp:8: undefined reference to `ClasseB::ClasseB()'
c:/Donnees/Programmation/c/NDS/Test/source/main.cpp:10: undefined reference to `ClasseB::~ClasseB()'
collect2: ld returned 1 exit status

J'espère qu'il y a toutes informations qu'il faut. Je précise que mes classes ont été générées automatiquement avec eclipse.
__________________
Silwek ~ Toshen Project ~
silwek est déconnecté   Réponse avec citation
Vieux 12/04/2009, 19h49   #23
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

avant tout, je vois que tu utilises Eclipse, moi il me fait chier si j'utilise des .h au lieu de .hpp au niveau du mot clé class, tu as ce pb où pas ?

sinon tu as mis toutes les infos c'est nickel, mais à priori le problème se situerait au niveau du makefile, donc si tu t'y connais assez vérifie que tes sous-répertoires sont bien inclus dans la compilation, sinon ajoute les.
Si t'y connais rien bah poste le contenu de ton makefile

Pour mon projet PSP j'ai modifié mon makefile comme suit, pour éviter d'avoir à ajouter à la main tous les .o car j'en ai vraiment trop ! du coup j'inclus que les sous-répertoires

Code:
SOURCES	= src src/sousrep1 src/sousrep2 
export VPATH	:=	$(foreach dir,$(SOURCES),$(CURDIR)/$(dir))
CFILES = $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CXXFILES = $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
export OBJS	=	$(CFILES:.c=.o) $(CXXFILES:.cpp=.o)
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 12/04/2009, 20h27   #24
silwek
Membre
 
Date d'inscription: 09/04/2009
Localisation: Le train Lyon-Annecy
Messages: 24
Voir les codes amis Nintendo DS
Par défaut

Effectivement en rajoutant mon répertoire dans le Makefile ça marche nickel
Code:
SOURCES		:= source source/repertoire
Par contre va vraiment falloir que je fasse ça pour tous mes répertoires un à un ? Ca va être laborieux dit donc...
__________________
Silwek ~ Toshen Project ~
silwek est déconnecté   Réponse avec citation
Vieux 13/04/2009, 01h12   #25
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

bah oui pour chaque sous répertoire mais bon tu dois pas en avoir tant que ça si ??
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
NDS questions sur les var et prog avec plusieurs fichiers Le Rodeur Aide au développement 9 14/12/2008 12h39
DS Trimmer - Petit programme que je vous offre :) Bodom-Child [NDS] Divers 41 24/07/2008 13h57
NDS Extraire des fichiers des roms .nds KillerMapper Archives - Divers (NDS) 15 21/01/2008 22h45
NDS Sauvegardes nds M3DS disparues, fichiers étranges dd59370 Linkers M3/R4 6 25/12/2007 21h43
Programme d'aide à la création de DAT PsyKos Projets 3 04/10/2007 20h53


Fuseau horaire GMT +2. Il est actuellement 09h23.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince