Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Sun May 19, 2024 4:41 pm

All times are UTC




Post new topic Reply to topic  [ 95 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 7  Next
Author Message
 Post subject:
PostPosted: Mon Dec 27, 2004 10:30 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Attention, "Diff-me", c'est pour faire un diff entre le fichier déjà présent sur le serveur et celui que tu donne avec ton formulaire.
Pour mettre à jour ton fichier, il faut le ré-uploader comme tu l'a fait la première fois : tu sélectionnes le répertoire (et non le fichier), et tu fait "upload : update this directory".

Tu souhaites faire executer le script python depuis le makefile lui même ? Comme tu le dit plus haut, un lancement manuel me semble tout à fait intéressant, puisque les fichiers ne changent que lorsque Raydium change. Mais j'attend de voir ce que donne ce script avant de m'avancer plus :)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Dec 27, 2004 10:59 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Merci, j'ai conpris ...:-) J'ai mis a jour WVS (fichier make-makefile.py)

Ce que fait le makefile:
- Il décompacte le script make_makefile (écrit en python) qui crée des fichiers headers très potables à partir de fichiers sources
- il crée le fichier include.c qui est identique à index.c à part qu'au lieu d'inclure les fichiers .c à la fin, il inclus les fichiers .h
- Il crée les fichiers source-bis.c à partir de la liste des #include de index.c. La seule modification est qu'il inclus include.c au début
- Il compile un à un ces fichiers .c
- si ca marche, il crée la bibliothèque

Pour le moment, ca coince sur la comoilation séparée des fichiers objets. Peut-être pourras tu maider.
Voici l'erreur:

Code:
gcc raydium/background-bis.c -o raydium/background.o -Wall -L/usr/X11R6/lib/ -Iode/include/ -Iphp/ -Iphp/include -Iphp/main/ -Iphp/Zend -Iphp/TSRM
raydium/php.c.h:108: attention : « sapi_raydium_send_headers » utilisé mais n'a jamais été défini
raydium/php.c.h:109: attention : « sapi_raydium_send_header » utilisé mais n'a jamais été défini
raydium/php.c.h:110: attention : « php_dummy » utilisé mais n'a jamais été défini
raydium/php.c.h:113: attention : `raydium_sapi_module' defined but not used

[edit] J'ai modifié makefile_header pour que le mot chef "static" au début des lignes disparaissent. Ce problème n'existe plus.
Reste le problème suivant:
Code:
/usr/lib/gcc-lib/i486-linux/3.3.5/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:98: undefined reference to `main'
/tmp/ccSXtIAd.o(.text+0x27): In function `raydium_background_color_change':
: undefined reference to `raydium_clear_color_update'
/tmp/ccSXtIAd.o(.text+0x2c): In function `raydium_background_color_change':
: undefined reference to `raydium_fog_color_update'
/tmp/ccSXtIAd.o(.data+0xe8): undefined reference to `php_dummy'
/tmp/ccSXtIAd.o(.data+0xec): undefined reference to `php_dummy'
/tmp/ccSXtIAd.o(.data+0xf8): undefined reference to `raydium_php_uwrite'
/tmp/ccSXtIAd.o(.data+0x108): undefined reference to `raydium_php_error'
/tmp/ccSXtIAd.o(.data+0x110): undefined reference to `sapi_raydium_send_headers'
/tmp/ccSXtIAd.o(.data+0x114): undefined reference to `sapi_raydium_send_header'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [raydium/background.o] Erreur 1


et le fichier raydium/php.c.h généré par le script python "make_header":
Code:
$ grep -n "" raydium/php.c.h
1:#ifndef _PHP_C_H
2:#define _PHP_C_H
3:
4:// PHP support for Raydium
5:/*    #include "php_wrappers.c"       */
6:// C prototype to PHP function wrappers:
7:// PHP_ReturnType_Arg1TypeArg2Type...(function to wrap)
8:// v stands for: void
9:// i stands for: int
10:// f stands for: float
11:// s stands for: char *
12:// svaria stands for: (char *, ...)
13:// Don't forget to register your functions, too ! (see register.c or docs)
14:// void f(void)
15:#define PHP_v_v(fname)\
16:ZEND_FUNCTION(fname)\
17:{\
18:fname();\
19:}
20:// void f(int)
21:#define PHP_v_i(fname)\
22:ZEND_FUNCTION(fname)\
23:{\
24:int a;\
25:if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,\
26:  "l", &a) == FAILURE)  return;\
27:fname(a);\
28:}
29:// int f(int)
30:#define PHP_i_i(fname)\
31:ZEND_FUNCTION(fname)\
32:{\
33:int a;\
34:if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,\
35:  "l", &a) == FAILURE)  return;\
36:RETURN_LONG(fname(a));\
37:}
38:// int f(int, int)
39:#define PHP_i_ii(fname)\
40:ZEND_FUNCTION(fname)\
41:{\
42:int a,b;\
43:if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,\
44:  "ll", &a, &b) == FAILURE)  return;\
45:RETURN_LONG(fname(a,b));\
46:}
47:// int f(int,float)
48:#define PHP_i_if(fname)\
49:ZEND_FUNCTION(fname)\
50:{\
51:int a;\
52:double b;\
53:if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,\
54:  "ld", &a, &b) == FAILURE)  return;\
55:RETURN_LONG(fname(a,b));\
56:}
57:// void f(float, float, float) - double, too
58:#define PHP_v_fff(fname)\
59:ZEND_FUNCTION(fname)\
60:{\
61:double a,b,c;\
62:if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,\
63:    "ddd", &a, &b, &c) == FAILURE)  return;\
64:fname(a,b,c);\
65:}
66:// int f(char *)
67:#define PHP_i_s(fname)\
68:ZEND_FUNCTION(fname)\
69:{\
70:char *a;\
71:int s_len;\
72:if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,\
73:  "s", &a, &s_len) == FAILURE)  return;\
74:RETURN_LONG(fname(a));\
75:}
76:// void f(char *)
77:#define PHP_v_s(fname)\
78:ZEND_FUNCTION(fname)\
79:{\
80:char *a;\
81:int s_len;\
82:if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,\
83:  "s", &a, &s_len) == FAILURE)  return;\
84:fname(a);\
85:}
86:// void f(char *, ...) - (printf style)
87:#define PHP_v_svaria(fname)\
88:ZEND_FUNCTION(fname)\
89:{\
90:char *a;\
91:int s_len;\
92:if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,\
93:  "s", &a, &s_len) == FAILURE)  return;\
94:fname("%s",a);\
95:}
96:/* END       #include "php_wrappers.c"       */
97:// use this macro when registering your functions
98:#define C2PHP ZEND_FN
99:// Dirty globals... (needed for WIN32 PHP support)
100:#ifdef ZTS
101:zend_compiler_globals *compiler_globals;
102:zend_executor_globals *executor_globals;
103:php_core_globals *core_globals;
104:sapi_globals_struct *sapi_globals;
105:void ***tsrm_ls;
106:#endif
107:int raydium_init_cli_option (char *option, char *value);
108:static int sapi_raydium_send_headers (sapi_headers_struct * sapi_headers TSRMLS_DC);
109:static void sapi_raydium_send_header (sapi_header_struct * sapi_header, void *server_context TSRMLS_DC);
110:static int php_dummy (sapi_module_struct * sapi_module);
111:void raydium_php_error (int type, const char *msg, ...);
112:int raydium_php_uwrite (const char *str, uint str_length TSRMLS_DC);
113:static sapi_module_struct raydium_sapi_module = {
114:  "RayHandler",                     /* name */
115:  "Raydium PHP Handler",    /* pretty name */
116:  // Since PHP@Win32 is dirty... :
117:  php_dummy,                        /* startup */
118:  php_dummy,                        /* shutdown */
119:  NULL,                             /* activate */
120:  NULL,                             /* deactivate */
121:  raydium_php_uwrite,               /* unbuffered write */
122:  NULL,                             /* flush */
123:  NULL,                             /* get uid */
124:  NULL,                             /* getenv */
125:  raydium_php_error,                /* error handler */
126:  NULL,                             /* header handler */
127:  sapi_raydium_send_headers,        /* send headers handler */
128:  sapi_raydium_send_header, /* send header handler */
129:  NULL,                             /* read POST data */
130:  NULL,                             /* read Cookies */
131:  NULL,
132:  NULL,                             /* register server variables */
133:  NULL,                             /* Log message */
134:  NULL,                             /* Block interruptions */
135:  NULL,                             /* Unblock interruptions */
136:  STANDARD_SAPI_MODULE_PROPERTIES
137:};
138:void raydium_php_init_request (char *filename);
139:int raydium_php_exec (char *name);
140:void raydium_php_close (void);
141:void raydium_php_init (void);
142:
143:#endif


Last edited by mildred on Mon Dec 27, 2004 11:15 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Mon Dec 27, 2004 11:13 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Aïe ... il se passe des choses délicates dans les fichiers liés à PHP. Dans un premier temps, tu doit pouvoir désactiver PHP dans config.h (il faut commenter PHP_SUPPORT, de tête). On se penchera ensuite sur php et ses wrappers (php.c, php_wrappers.c, rayphp.c, reg_api.c).


Top
 Profile  
 
 Post subject:
PostPosted: Mon Dec 27, 2004 11:19 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Jai désactivé php et ca reste bloqué ici:
Code:
Creating: raydium/background.o
gcc raydium/background-bis.c -o raydium/background.o -Wall -L/usr/X11R6/lib/ -Iode/include/ -Iphp/ -Iphp/include -Iphp/main/ -Iphp/Zend -Iphp/TSRM
/usr/lib/gcc-lib/i486-linux/3.3.5/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:98: undefined reference to `main'
/tmp/ccAg0BcN.o(.text+0x27): In function `raydium_background_color_change':
: undefined reference to `raydium_clear_color_update'
/tmp/ccAg0BcN.o(.text+0x2c): In function `raydium_background_color_change':
: undefined reference to `raydium_fog_color_update'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [raydium/background.o] Erreur 1


Tu as déja vu de tels mesages d'erreur ?

[edit]: en y réfléchissant, c'est évident. Apparament, il manque la fonction main()
Mais comment on fait dans les bibliothèques ... C'est la première fois que je compile une bibliothque que je modifie... Allez, je vais voir les docs.

[edit2]: j'avais oublié loption -c dans le Makefile. Voila qui est réparé
J'ai quelques fichiers .o créés mais il bloque sur joy.o je crois

[edit3] la variable "effect_tremble_state" est définie dans le fichier header et dans le fichier source ? Et apparament, cela ne devrait pas être le cas.
Je pense à une solution. Définir "_JOY_C_H" comme ca le fichier joy.h ne sera pas inclus ... J'essaie

Mes fichiers ne sont pas corrompus, ./ocomp test6.c fonctionne toujours


Top
 Profile  
 
 Post subject:
PostPosted: Mon Dec 27, 2004 11:49 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Ca a l'air de compiler .. j'attends la fin ...!!!

[edit] Une petite erreur sur la ligne de commande de "ar" pour créer la lib statique ...
[edit 2] une autre erreur sur le chemin de libode.a ...
[edit 3] J'ai refait le Makefile. Du coup, il me recompile tout

[edit 4] gcc ne veut pas créer le fichier .so:
Code:
gcc -o raydium.so -shared raydium/background.o raydium/callback.o raydium/camera.o raydium/capture.o raydium/clear.o raydium/console.o raydium/file.o raydium/fog.o raydium/init.o raydium/internal.o raydium/joy.o raydium/key.o raydium/land.o raydium/light.o raydium/log.o raydium/mouse.o raydium/network.o raydium/normal.o raydium/object.o raydium/ode.o raydium/osd.o raydium/parser.o raydium/particle2.o raydium/php.o raydium/profile.o raydium/random.o raydium/rayphp.o raydium/register.o raydium/render.o raydium/signal.o raydium/sky.o raydium/sound.o raydium/texture.o raydium/timecall.o raydium/trigo.o raydium/vertex.o raydium/window.o -L/usr/X11R6/lib/ -lGL -lglut -lGLU -lm -lopenal -lvorbis -lvorbisfile -logg -lresolv -lcrypt -lz ode/lib/libode.a php/libs/libphp4.a
raydium/callback.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/callback.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/callback.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/callback.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/camera.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/camera.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/camera.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/camera.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/capture.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/capture.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/capture.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/capture.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/clear.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/clear.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/clear.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/clear.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/console.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/console.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/console.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/console.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/file.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/file.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/file.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/file.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/fog.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/fog.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/fog.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/fog.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/init.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/init.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/init.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/init.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/internal.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/internal.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/internal.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/internal.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/joy.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/joy.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/joy.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/joy.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/key.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/key.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/key.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/key.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/land.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/land.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/land.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/land.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/light.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/light.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/light.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/light.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/log.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/log.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/log.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/log.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/mouse.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/mouse.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/mouse.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/mouse.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/network.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/network.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/network.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/network.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/normal.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/normal.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/normal.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/normal.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/object.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/object.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/object.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/object.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/ode.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/ode.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/ode.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/ode.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/osd.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/osd.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/osd.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/osd.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/parser.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/parser.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/parser.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/parser.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/particle2.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/particle2.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/particle2.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/particle2.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/php.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/php.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/php.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/profile.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/profile.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/profile.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/profile.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/random.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/random.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/random.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/random.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/rayphp.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/rayphp.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/rayphp.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/rayphp.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/register.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/register.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/register.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/register.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/render.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/render.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/render.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/render.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/signal.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/signal.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/signal.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/signal.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/sky.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/sky.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/sky.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/sky.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/sound.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/sound.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/sound.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/sound.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/texture.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/texture.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/texture.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/texture.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/timecall.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/timecall.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/timecall.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/timecall.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/trigo.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/trigo.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/trigo.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/trigo.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/vertex.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/vertex.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/vertex.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/vertex.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
raydium/window.o(.data+0x0): définitions multiples de « raydium_version »
raydium/background.o(.data+0x0): défini pour la première fois ici
raydium/window.o(.data+0x20): définitions multiples de « raydium_osd_ega »
raydium/background.o(.data+0x20): défini pour la première fois ici
raydium/window.o(.bss+0x0): définitions multiples de « effect_tremble_state »
raydium/background.o(.bss+0x0): défini pour la première fois ici
raydium/window.o(.data+0xe0): définitions multiples de « raydium_sapi_module »
raydium/background.o(.data+0xe0): défini pour la première fois ici
collect2: ld a retourné 1 code d'état d'exécution
make: *** [raydium.so] Erreur 1


Qu'est ce que cela signifie ??
Je vais chercher ...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 1:53 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Je crois que jai compris l'erreur ... mais je ne sais pas comment la corriger :(

En fait, chaque fichier compilé séparément inclus le fichier include.c qui est formé à partir du début du fichier index.c
Donc: Tous les symboles définis dans la première partie de ce fichier sont alors définis dans chaque fichier .o
Au final, ces symboles sont définis plein de fois.

Mais alors: comment éviter le conflit ???

Je vais tenter de modifier include.c et ensuite de compiler un gros truc comme ode.c pour voir si il compile en ode.o..... à suivre

[edit] ben non, il compile pas. il lui manque toutes les définitions de la première partie de index.c
Mais alors comment faire ???

[edit] la solution est la: http://casteyde.christian.free.fr/online/cours_cpp/x2601.html#AEN2615
Il faut ajouter le mot clef "extern" pour la déclaration dex variables ...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 2:33 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
J'arrive trop tard (j'ai survolé ton post tout à l'heure, mais sans avoir eu le temps de m'y pencher), mais le problème est bien celui dont tu parles (variables externes). Tu va retrouver le même problème lors de la liaison de raydium.so avec l'application souhaitée, qui va inclure un .h elle aussi.
index.c contient beaucoup de ces variables, tout comme les différents .h présents dans le répertoire de Raydium... et je ne parle pas de l'énorme problème qui se profile à l'horizon : Windows et les DLL, qui ne supportent pas (de ce que j'en sais) les variables externes.

Wait and see ;)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 3:27 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Pour les variables, je vmodifie mon script make_header.py mais ce n'est pas facile ...
Sinon, pour Windows, en effet, c'est un vrai problème ...
Tu dis qu'il nest pas possible de définir des variables externes ? mais pourquoi ?

Pour le moment, je vais essayer de faire fonctionner ca sous linux, et ensuite, on se penchera sur Windows ...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 3:38 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
mildred wrote:
Tu dis qu'il nest pas possible de définir des variables externes ? mais pourquoi ?

Les DLL ne fonctionnent pas vraimment comme les DSO sous Unix, par exemple elles peuvent être partagées entre plusieurs programmes, ce qui fait qu'elles ne peuvent contenir que des fonctions : pas d'instances, pas de variables externes, pas de variables statiques, etc. Que du code immuable et
relogeable.

mildred wrote:
Pour le moment, je vais essayer de faire fonctionner ca sous linux, et ensuite, on se penchera sur Windows ...

Sage décision. Il reste tout à fait possible de ne permettre que la compilation habituelle sous Windows de toutes façons.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Dec 28, 2004 4:49 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
J'ai mon script qui m'a généré index.c.h mais il est tellement gros que je n'ai pas tout vérifié. Cepandant, il semble correct...
Je vais essayer de compiler ...

[edit] Sauf que ca ne compile pas ...


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 2:56 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Ca y est. Le .so est compilé !!!!

Changements:
    Un nouveau script make_header.py entièrement réécrit
    Une petite modification dans le fichier raydium/particle2.h qui était inclus deux fois. Donc echec car les symboles étaient redéfinis ...


Je vais mettre à jour WVS ...
A propos de WVS, la dernière fois que j'ai uploadé un fichier, il y a eu un problème. Jai uploadé un lien symbolique et je voulais que le fichier ait le nom du lien symbolique mais il a le nom du fichier original.
Pas moyen de renomer un fichier sur WVS ?

[edit] Il reste maintenant raydium/reg_api.c ... Peux-tu me conseiller ? Je ne vois pas bien comment l'utiliser et comment le compiler ...

Mildred


Last edited by mildred on Wed Dec 29, 2004 3:13 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 3:11 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Félicitations :)

Pour WVS, donne moi le fichier qui te gène, et ce que tu veux lui faire, je m'en occupe.
Pour particle2.h, quelle a été la modif ? Je l'appliquerais à l'arbre des sources """officiel""" :)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 3:16 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Pour WVS, le fichier c'est: /raydium_prog/comp/linux-makefile/make_header-0.4.py
Je l'avais uploadé en pensant qu'il se nommerait make_header.py.
Sinon, c'est une ancienne version par rapport à make_header.py que je viens d'uploader

Sinon, pour raydium/particle2.h j'ai juste fait avant:
Code:
#ifndef _PARTICLE2_H
#define _PARTICLE2_H

Et après:
Code:
#endif


Pas très compliqué ...

Sinon, je me demandais comment faire pour raydium/reg_api.c ...
[edit]
J'ai une idée. On en fait un .o comme les autres (avec inclusion de index.c.h) et on le met comme les autres dans le .so et le .a

Mais comment on va faire pour Windows ...? Je verrais après avoir bien dormi :-)[/edit]

Mildred


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 3:45 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
J'ai essayé de compiler test6.c en remplacant
Code:
#include "raydium/index.c"

par:
Code:
#include "raydium/index.c.h"

Mais ca coince au niveau de reg_api.c ...:
Code:
$ gcc test6b.c ./raydium.a -Iode/include/ -Iphp/ -Iphp/include -Iphp/main/ -Iphp/Zend -Iphp/TSRM
In file included from test6b.c:12:
raydium/reg_api.c:6: error: stray '\' in program
raydium/reg_api.c:7: error: stray '\' in program
raydium/reg_api.c:8: error: stray '\' in program
raydium/reg_api.c:9: error: stray '\' in program
raydium/reg_api.c:10: error: stray '\' in program
raydium/reg_api.c:12: error: stray '\' in program
raydium/reg_api.c:13: error: stray '\' in program
raydium/reg_api.c:15: error: stray '\' in program
raydium/reg_api.c:16: error: stray '\' in program
raydium/reg_api.c:18: error: stray '\' in program
raydium/reg_api.c:19: error: stray '\' in program
raydium/reg_api.c:21: error: stray '\' in program
raydium/reg_api.c:23: error: stray '\' in program
raydium/reg_api.c:24: error: stray '\' in program
raydium/reg_api.c:26: error: stray '\' in program
raydium/reg_api.c:28: error: stray '\' in program
raydium/reg_api.c:30: error: stray '\' in program
raydium/reg_api.c:32: error: stray '\' in program
raydium/reg_api.c:34: error: stray '\' in program
test6b.c:223: error: stray '\' in program
test6b.c:228: error: stray '\' in program

A part ca, ca a l'air de marcher...
En fait, non. Ca ne marche pas du tout :-( lorsque je compile tests.c j'ai des erreurs du type:
Code:
./raydium.a(network.o)(.text+0x28): In function `raydium_network_propag_find':
: undefined reference to `raydium_network_propag'
./raydium.a(network.o)(.text+0x3e): In function `raydium_network_propag_find':
: undefined reference to `raydium_network_propag'
./raydium.a(network.o)(.text+0xce): In function `raydium_network_propag_recv':
: undefined reference to `raydium_network_propag'
[...]


J'ai dit que j'allais me coucher donc ---->[]


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 29, 2004 12:02 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Plusieurs choses : test6 utilise des fonctions liées à PHP, et "reg_api" est lui aussi lié à PHP. Donc si tu as toujours désactivé le support PHP, il faudra modifier quelques lignes dans test6 pour enlever toutes les référence à PHP (elles ne sont pas nécessaires au fonctionnement de test6).

Ensuite ,"raydium_network_propag" est une variable, déclarée dans index.c, depuis la structure raydium_network_Propag. Il doit probablement manquer la définition de cette variable (déclaration "non-externe").


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

All times are UTC


Who is online

Users browsing this forum: No registered users and 14 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