Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Sat Apr 27, 2024 9:20 pm

All times are UTC




Post new topic Reply to topic  [ 95 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7  Next
Author Message
 Post subject:
PostPosted: Tue Feb 01, 2005 11:24 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
A l'heure de ce post, je n'arrive pas à accéder à ta machine. En revanche, le miroir semble ok, et (Ô joie et contentement) l'archive semble en bon état. Je regarde tout ça dès demain (midi au pire).
Sinon, les segfaults correspondent à des accès à un morceau de mémoire non légitime (parcours de tableau qui déborde, pointeurs foireux, etc.). Dans notre cas, il est assez complexe de comprendre pourquoi on obtient cette erreur, mais la backtrace de gdb va me donner plus d'infos très vite.

Merde pour tes exams.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 11:07 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Ca fait du bien de travailler au clair sur une archive complète :)

Après lecture du code, voilà ce que j'en ressort :
"main.h" à pour rôle de remplacer "index.c" pour une liaison avec la libraydium, si j'ai bien compris. A partir de là, il y'a plusieurs choses qui clochent :
- Tes variables ne sont pas déclarées en externe, donc chaque .c va posséder ses propres variables, dupliquées autant de fois qu'il y'a de .c ... d'ou les segfault, puisque pour les pointeurs, par exemple, ne sont plus les même pour chaque .c . Toutes les variables de ce main.h doivent êtres externes, seul main.c doit effectivement créer ces variables.
- Ton main.h devrait offrir au programme l'ensemble des headers ! Si tu regardes bien, à aucun moment test6.c (la version "dynamique") n'inclue raydium/headers/trigo.h, ni tout les autres... et ça explique pleins de choses du coup :
- raydium_trigo_abs n'est pas connue (comme toutes les macros déclarées dans les headers)
- Tu as des tonnes de warnings à la compile (de test6 et de la lib) parce que le compilateur n'a aucune idée des prototypes des fonctions, il place tout en int par défaut (valeur de retour et arguments), d'ou les "pointer from integer without a cast". Une compilation avec un -Wall (warnings : all) montre bien cette situation (des centaines de "warning: implicit declaration of function ...").
- RayPHP étant un ramassis de macros, impossible d'en tirer quoi que ce soit (d'ou ta désactivation de PHP dans test6).
- toutes les constantes (ODE, par exemple) ne sont pas déclarée, d'ou des erreurs en tout genre.
- ...

Bref, la solution (dans un premier temps) :
- faire inclure la totalité des headers à main.h
- déclarer toutes les variables en tant qu'externes (comme les fonctions)

Je sais pas si mes explications sont claires, n'hésite pas à demander des compléments si c'est le cas.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 12:58 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Bon, apparament j'ai fait plein de bêtises ... mais cest comme ca qu'on apprend :-)
Xfennec wrote:
Après lecture du code, voilà ce que j'en ressort :
"main.h" à pour rôle de remplacer "index.c" pour une liaison avec la libraydium, si j'ai bien compris.

En fait pas vraimment ... main.h ne sert qu'a définir tu ce qu'on trouve dans main.c. C'est a dire la définition des variables globales et des structures ... (les constantes aussi)
Xfennec wrote:
A partir de là, il y'a plusieurs choses qui clochent :
- Tes variables ne sont pas déclarées en externe, donc chaque .c va posséder ses propres variables, dupliquées autant de fois qu'il y'a de .c ... d'ou les segfault, puisque pour les pointeurs, par exemple, ne sont plus les même pour chaque .c . Toutes les variables de ce main.h doivent êtres externes, seul main.c doit effectivement créer ces variables.

J'ai l'impression que c'est la le problème ... Et c'est une erreur que je n'avais pas vue ... A corriger donc.
Xfennec wrote:
- Ton main.h devrait offrir au programme l'ensemble des headers ! Si tu regardes bien, à aucun moment test6.c (la version "dynamique") n'inclue raydium/headers/trigo.h, ni tout les autres... et ça explique pleins de choses du coup

Ben non ...
c'est pas "raydium/main.h" quon doit inclure mais "raydium/index.h" qui lui contient plein d'#include-s
Xfennec wrote:
[...]- RayPHP étant un ramassis de macros, impossible d'en tirer quoi que ce soit (d'ou ta désactivation de PHP dans test6).

En fait, on devrait pouvoir inclure "raydium/reg_api.c" comme avant. On remplace juste le #include "raydium/index.c" par #include "raydium/index.h"

Xfennec wrote:
Bref, la solution (dans un premier temps) :
- [...]
- déclarer toutes les variables en tant qu'externes (comme les fonctions)


Je le fais et je t'envoie un diff ?
je le fais et je vais essayer de ne pas m'endormir en attendant ... Et je mettrais à jour le miroir (mon dyndns ne marche pas pour une raison inconnue, maintenant je teste avec un proxy)

Mildred


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 1:20 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Mise à jour du miroir en cours ...
Jai uniquement modifié main.h et le Makefile pour corriger la cible "clean".
Nouveau main.h: http://mildred632.free.fr/projets/raydium.dir/raydium/main.h

Par contre, il y a toujours un segfault au même endroit ...


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 1:25 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Arg :) Excuse moi, j'ai effectivement pas du tout fait attention à index.h qui du coup corrige une grande partie du problème.

Si on remet au clair, il reste :
- les externs pour les fonction ( -> probable disparition des segfaults)
- les warnings à la compile de la librairie

Pour le second point, je confirme ce que je disais plus haut : le compilateur n'a pas l'air d'avoir la liste des prototypes des fonctions. Mais pourtant, il ne donne pas de "implicit declaration of" alors que tu as un -Wall dans ton Makefile. Sauf qu'après relecture, je me suis rendu compte que ton Makefile déclare un "CLFAGS" et non "CFLAGS" ;) (corriger aussi le script de génération du Makefile ?)
Et du coup après modif, on a bien les warnings en question. J'en cherche la raison et je reposte ensuite.

Pour PHP, on va attendre la suite avant de se pencher plus en détail sur le problème.

PS: Je préfère un bon vieux tar.gz plutot qu'un diff, mais à toi de voir :)

Edit: j'ai posté en même temps que toi : je vais regarder le coup des warnings avant de me pencher sur le segfault.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 1:28 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Les fichiers raydium/*.c devraient inclure index.h et non main.h, tout simplement. A tester, mais je pense que ca résoudrait pas mal de problèmes.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 2:03 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Tu pense pour l'inclusion de index.h ? je n'en suios pas du tout sure ...
Je crois que ca poserait un autre problème. Exemple:

foo.c fait un include sur index.h
index.h fait un include sur foo.h
foo.h définit "extern int mafonction(int a)" par exemple
foo.c définit "int mafonction(int a){return a;}"
gcc affiche une erreur car la fonction est redéfinie alors qu'il pensait quelle était externe.

Voila les raisons.
Sinon, les #include au début, je les ai faits à la main par tatonnement en regardant les erreurs. Mais c'est sur que si il n'y avait pas de -Wall des erreurs ont du passer à coté ...

Finalement ca s'éclaircit.
Je modifie le Makefile

Ce sera l'adresse (lorsque ce sera prêt): http://mildred632.free.fr/projets/raydi ... 2-2.tar.gz


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 2:13 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Effectivement, ca fait pas mal d'erreurs ...
Il va faloir que je modifie les #include dans tous les fichiers ...

en édit de ce post, je vais indiquer les fichiers que je modifie. Comme ca tu peux travailler sur raydum, je ne veux pas te bloquer.

[edit] C'est parti:

background.c
#include "headers/main.h"
#include "headers/fog.h"
#include "headers/clear.h"

callback.c
#include "headers/timecall.h"
#include "headers/window.h"
#include "headers/light.h"
#include "headers/key.h"
#include "headers/mouse.h"
#include "headers/joy.h"
#include "headers/particle2.h"
#include "headers/sound.h"

camera.c
#include "headers/log.h"
#include "headers/window.h"
#include "headers/light.h"
#include "headers/texture.h"
#include "headers/sound.h"
#include "headers/sky.h"
#include "headers/file.h"
#include "headers/trigo.h"

capture.c
#include "headers/log.h"

console.c
#include "headers/log.h"
#include "headers/texture.h"
#include "headers/osd.h"
#include "headers/php.h"
#include "headers/file.h"
#include "headers/init.h"

file.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/texture.h"
#include "headers/vertex.h"
#include "headers/init.h"

init.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/signal.h"
#include "headers/random.h"
#include "headers/timecall.h"
#include "headers/fog.h"
#include "headers/window.h"
#include "headers/background.h"
#include "headers/light.h"
#include "headers/mouse.h"
#include "headers/joy.h"
#include "headers/texture.h"
#include "headers/render.h"
#include "headers/particle2.h"
#include "headers/sound.h"
#include "headers/callback.h"
#include "headers/osd.h"
#include "headers/php.h"
#include "headers/console.h"
#include "headers/internal.h"
#include "headers/camera.h"
#include "headers/object.h"
#include "headers/network.h"
#include "headers/init.h"

internal.c
#include "headers/log.h"
#include "headers/register.h"
#include "headers/init.h"

joy.c
#include "headers/log.h"

key.c
#include "headers/capture.h"

land.c
#include "headers/trigo.h"
#include "headers/texture.h"
#include "headers/render.h"
#include "headers/vertex.h"

mouse.c
#include "headers/log.h"

network.c
#include "headers/log.h"
#include "headers/timecall.h"
#include "headers/init.h"

normal.c
#include "headers/log.h"

object.c
#include "headers/log.h"
#include "headers/trigo.h"
#include "headers/random.h"
#include "headers/render.h"
#include "headers/vertex.h"

ode.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/trigo.h"
#include "headers/timecall.h"
#include "headers/texture.h"
#include "headers/particle2.h"
#include "headers/sound.h"
#include "headers/osd.h"
#include "headers/camera.h"
#include "headers/object.h"

ode_net.c
#ifndef DONT_INCLUDE_HEADERS
#include "headers/random.h"
#include "headers/timecall.h"
#include "headers/network.h"
#include "headers/init.h"
#endif

osd.c
#include "headers/main.h"
#include "headers/window.h"
#include "headers/mouse.h"
#include "headers/texture.h"
#include "headers/render.h"

particle2.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/trigo.h"
#include "headers/random.h"
#include "headers/light.h"
#include "headers/particle2.h"
#include "headers/texture.h"
#include "headers/file.h"
#include "headers/init.h"

php.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/file.h"

profile.c
#include "headers/main.h"
#include "headers/timecall.h"

rayphp.c
#include "headers/main.h"
#include "headers/register.h"
#include "headers/php.h"
#include "headers/init.h"

register.c
#include "headers/main.h"
#include "headers/log.h"

signal.c
#include "headers/main.h"
#include "headers/log.h"

sky.c
#include "headers/main.h"
#include "headers/texture.h"
#include "headers/sky.h"

sound.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/file.h"

texture.c
#include "headers/main.h"
#include "headers/log.h"

timecall.c
#include "headers/main.h"
#include "headers/log.h"

vertex.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/normal.h"

window.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/fog.h"

quel travail répétitif ... j'essaie de compiler


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 3:10 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
quelques erreurs à la compilation, je fais un 2eme passage ...

camera.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/window.h"
#include "headers/light.h"
#include "headers/texture.h"
#include "headers/render.h"
#include "headers/sound.h"
#include "headers/sky.h"
#include "headers/file.h"
#include "headers/trigo.h"

console.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/texture.h"
#include "headers/render.h"
#include "headers/osd.h"
#include "headers/php.h"
#include "headers/file.h"
#include "headers/init.h"

init.c
-> Petite modification dans headers/signal.h:
Code:
#ifndef _HEADERS_SIGNAL_H
#define _HEADERS_SIGNAL_H
extern void raydium_signal_handler (int sig);
extern void raydium_signal_install_trap (void);
#endif


object.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/trigo.h"
#include "headers/random.h"
#include "headers/render.h"
#include "headers/vertex.h"
#include "headers/file.h"

ode.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/trigo.h"
#include "headers/timecall.h"
#include "headers/texture.h"
#include "headers/render.h"
#include "headers/particle2.h"
#include "headers/sound.h"
#include "headers/osd.h"
#include "headers/camera.h"
#include "headers/object.h"

particle2.c
#include "headers/main.h"
#include "headers/log.h"
#include "headers/trigo.h"
#include "headers/random.h"
#include "headers/parser.h"
#include "headers/light.h"
#include "headers/texture.h"
#include "headers/render.h"
#include "headers/file.h"
#include "headers/init.h"

sky.c
#include "headers/main.h"
#include "headers/texture.h"
#include "headers/render.h"
#include "headers/sky.h"

ca compile sans erreurs.
Je met une archive sur internet dans 5min ...


Last edited by mildred on Wed Feb 02, 2005 3:33 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 3:12 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
A priori, cela ne gène pas GCC de tomber sur l'implémentation d'une fonction déclarée 3 lignes plus haut comme externe. De toutes facon, le mot clef "extern" est tout à fait optionnel pour les fonctions (mais obligatoire sur les variables).

Sinon, prends ton temps, je ne suis pas non plus dans l'urgence absolue :)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 3:44 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Tu peux trouver loa dernière archive ici: http://mildred632.free.fr/projets/raydi ... 2-2.tar.gz

Sinon, test6.c ne compile plus sans erreurs et le segfault n'a pas bougé ...
Code:
test6c.c: Dans la fonction « boom »:
test6c.c:81: attention : passage de l'argument n°2 de « raydium_particle_generator_move » d'un type pointeur incompatible
test6c.c:82: attention : passage de l'argument n°2 de « raydium_particle_generator_move » d'un type pointeur incompatible
test6c.c:85: attention : passage de l'argument n°2 de « raydium_sound_SetSourcePos » d'un type pointeur incompatible
test6c.c: Dans la fonction « display »:
test6c.c:646: attention : passage de l'argument n°2 de « raydium_particle_generator_move_name » d'un type pointeur incompatible


edit: manquait un '/' dans l'url


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 4:11 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Code:
export LD_LIBRARY_PATH=.
gcc ./test6c.c -g -Wall -o test libraydium.so -Iphp/ -Iphp/main/ -Iphp/Zend -Iphp/TSRM -Iode/include/
./test


Yé ! Pas le moindre warning, compile parfaite, et test6 semble tourner tout à fait correctement (testé moins de 15 secondes, ceci dit). J'ai utilisé un version modifiée de test6 pour enlever le PHP (je n'ai pas encore ré-essayé avec), que je te donne au cas ou ton problème vienne de là : http://ftp.cqfd-corp.org/test6c.c

Par contre, je ne comprend pas ta modification des includes (raydium/*.c) : pourquoi ne pas utiliser index.h plutot qu'une liste (délicate à maintenir) des .h concernés ?
Il reste à tester le .a, aussi.

Super boulot, mildred !

Edit: Ça marche parfaitement avec PHP (test6.c original avec un include de index.h, donc).
Par contre... ça marche aussi avec index.c (?! ... mais la compile est plus lente...)... pas grave, on cherchera à comprendre après :)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 02, 2005 4:39 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Ben chez moi ca ne marche pas ... :-(
Mais le plus important c'est que ca marche quelquepart, non :-) :-)

Le .a ne devrait pas marcher car il n'est pas lié aux bibliothèques statiques et dynamiques qui servent à raydium. je ne sais pas comment faire.

Pour la liste des #include, j'ai choisi cette méthode parce qu'il me semble que gcc se plaignait sinon, mais je n'ai pas testé ca ces derniers temps alors je ne sais pas ...
Sinon, c'est aussi parce que je fais comme ca avec php. J'ai un dossier qui contient plein de fonctions (lib) et chaque fichier contient plein de include_once() se référant aux dépendances de la lib en question.
Cette liste serait a modifier si on utilise une fonction définie dans une autre partie de raydium. Il faudrait ajouter le #include corespondant.

Si tu as une meilleure idée qui arrive a compiler ce serait bien, c'est vrai.

Sinon, c'est normal que ca prenne plus de temps avec #include "raydium/index.c" car tu compile tout monolithiquement comme avant.


Maintenant, il me reste à apprendre pyrex pour faire une extension à python: PyRaydium
C'est pas que je n'aimme pas le C mais je préfère faire quelquechose de tacilement évolutif. ne pas coder le monde 3d directement en C et devoir recompiler a chaque fois qu'on veut ajouter un arbre ...


Mildred


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 04, 2005 9:53 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Pour le fait que ca ne marche pas chez toi : As tu essayé sur une version "propre" ? ton chemin pour la libraydium est bien le bon ?

Quote:
Le .a ne devrait pas marcher car il n'est pas lié aux bibliothèques statiques et dynamiques qui servent à raydium. je ne sais pas comment faire.

Il est tout à fait possible de lier ces libs au moment de la compilation du programme (ex: test6), et non de la lib elle même.

Pour les includes et PHP, il est tout à fait possible de te faire un fichier main.php qui inclue tous les autres :)
L'avantage de cette solution, c'est qu'elle permet de ne pas avoir à maintenir cette liste d'includes. Je n'ai pas (encore) testé, mais je ne pense que ca pose le moindre problème d'utiliser main.h

Quote:
Sinon, c'est normal que ca prenne plus de temps avec #include "raydium/index.c" car tu compile tout monolithiquement comme avant.

Ce qui m'étonne, ça n'est pas que ca prenne plus de temps, mais que ca se compile, tout court ! (redéfinition d'une tonnes de symboles en double).
Mais on s'en fiche :)

C'était peut être un exemple en l'air, mais il bien sûr hors de question de recompiler ton programme à chaque arbe ! :) (sans compter qu'avec ton système, ça se compile vite :) )

Plus sérieusement, et pour essayer de conclure ce chapitre, t'es t'il possible de m'expliquer très concrétement comment se passe la suite des choses. Si demain j'ajoute une fonction et/ou des variables à Raydium, que suis-je censé faire ? (fichiers à modifier, commandes à lancer pour régénérer des bidules, etc.)
Même question pour l'ajout d'un fichier ... ?


Top
 Profile  
 
 Post subject:
PostPosted: Sat Feb 05, 2005 11:57 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Xfennec wrote:
Pour le fait que ca ne marche pas chez toi : As tu essayé sur une version "propre" ? ton chemin pour la libraydium est bien le bon ?

En fait, j'ai retesté avec un rayest tout propre et ca compile bien ... Donc pas de problème ...
Il me semblait pourtant avoir édité mon post plus haut ...

Xfennec wrote:
Il est tout à fait possible de lier ces libs au moment de la compilation du programme (ex: test6), et non de la lib elle même.

Oui, bien sur mais c'est moins confortable je trouve

Xfennec wrote:
Pour les includes et PHP, il est tout à fait possible de te faire un fichier main.php qui inclue tous les autres :)
L'avantage de cette solution, c'est qu'elle permet de ne pas avoir à maintenir cette liste d'includes. Je n'ai pas (encore) testé, mais je ne pense que ca pose le moindre problème d'utiliser main.h

La je n'ai pas bien compris ....
Je ne me suis pas occupée de php dans cette affaire ... tu veux parler de reg_api.c ?

Xfennec wrote:
Ce qui m'étonne, ça n'est pas que ca prenne plus de temps, mais que ca se compile, tout court ! (redéfinition d'une tonnes de symboles en double).
Mais on s'en fiche :)

Ben non parce qu'il y a une constante définie dans index.c ... et comme l'inclusion des headers dépend de la définition de cette constante, les fichiers headers dépend de la non définition de cette constante, ils ne sont pas inclus:
Code:
#define DONT_INCLUDE_HEADERS


Xfennec wrote:
C'était peut être un exemple en l'air, mais il bien sûr hors de question de recompiler ton programme à chaque arbre ! :) (sans compter qu'avec ton système, ça se compile vite :) )

C'est pour ca que je j'ai envie de faire mon projet en python ... ou en pyrex comme ca on pourra faire des extensions en python.
C'est pas que je n'aimme pas le php mais je trouve qu'il est davantage réservé au développement web.

Xfennec wrote:
Plus sérieusement, et pour essayer de conclure ce chapitre, t'es t'il possible de m'expliquer très concrétement comment se passe la suite des choses. Si demain j'ajoute une fonction et/ou des variables à Raydium, que suis-je censé faire ? (fichiers à modifier, commandes à lancer pour régénérer des bidules, etc.)
Même question pour l'ajout d'un fichier ... ?


Modification d'une fonction
Si la fonction a besoin d'une fonction définie ailleurs, metre le #include du fichier .h correspondant au défut du fichier.

Ajout d'une fonction
Il faut modifier le fichier header en question et ajouter la définition de cette fonction. Et c'est tout.
Si, recompiler bien sur.

Ajout d'une variable
Pareil que pour l'ajout de fonction: mettre à jour le fichier header

Ajout d'un fichier
Un tout petit peu plus compliqué ...
- Il faut créer le fichier header correspondant et le nommer pareil (avec .h à la place de .c) et le placer dans le dossier headers.
- Il faut ajouter «#include "monfichier.c"» dans "index.c" et ajouter «#include "headers/monfichier.h"» dans "index.h"
- Il faut modifier le Makefile. Soit à la main, soit en le regénérant avec le script python.

Note: make-lite-makefile.py regarde dans le fichier "raydium/index.c" pour connaîte la liste des fichiers du projet. Pas de problème si un fichier est en double comme actuellement. (inclusion conditionelle).
Donc le simple fait d'ajouter le fichier à index.c permet au script python de le prendre en compte.

Voila pour les éclaircissements.
Mildred


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 95 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 194 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group