slt a tous!! je suis reconnaissant du grand travail que vous fournissez ici et je suis toujours un fidéle a ce forum !!je suis en train de porter (migrer) un produit installé sur AIX et compilé avec XLC vers LINUX RED HAT ENTREPRISE 5 avec GCC comme compilateur !!j’ai résolu plusieurs problémes mais mnt je suis vrmt bloqué dans la précompilation avec pro*c :
Citation:
$ make all
/usr/local/oracle/9.2.0/bin/proc sqlcheck=full userid=PSMS_USER/PSMS_USER dbms=v7 LINES=YES include=/home/oracle/Open2/COMMON/inc include=/home/oracle/Open2/ps/BOF/inc include=/home/oracle/Open2/ps/inc include=/home/oracle/Open2/ps/inc include=/home/oracle/Open2/syu/inc include=/home/oracle/Open2/lng/inc include=/home/oracle/Open2/lng/inc include=/home/oracle/Open2/com/inc iname=/home/oracle/Open2/ps/BOF/src_EDS/ps_bof_eds_lrmdb.pc
Pro*C/C++: Release 9.2.0.4.0 - Production on Wed Jul 29 13:12:44 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
System default option values taken from: /usr/local/oracle/9.2.0/precomp/admin/pcscfg.cfg
Syntax error at line 365, column 6, file /home/oracle/Open2/ps/inc/ps_parslib_parsers.h:
Error at line 365, column 6 in file /home/oracle/Open2/ps/inc/ps_parslib_parsers
.h
bool CheckAndAssign_String(unsigned char dst_string[],
.....1
PCC-S-02201, Encountered the symbol "CheckAndAssign_String" when expecting one o
f the following:
; , = ( [
The symbol ";" was substituted for "CheckAndAssign_String" to continue.
Syntax error at line 376, column 6, file /home/oracle/Open2/ps/inc/ps_parslib_parsers.h:
Error at line 376, column 6 in file /home/oracle/Open2/ps/inc/ps_parslib_parsers
.h
bool get_send_log_flag(void);
.....1
PCC-S-02201, Encountered the symbol "get_send_log_flag" when expecting one of th
e following:
; , = ( [
The symbol ";" was substituted for "get_send_log_flag" to continue.
Syntax error at line 139, column 4, file /home/oracle/Open2/ps/BOF/inc/ps_bof_comlib_envdata.h:
Error at line 139, column 4 in file /home/oracle/Open2/ps/BOF/inc/ps_bof_comlib_
envdata.h
Input_Queue_Data BOF_iq;
...1
PCC-S-02201, Encountered the symbol "Input_Queue_Data" when expecting one of the
following:
} char, const, double, enum, float, int, long, ulong_varchar,
OCIBFileLocator OCIBlobLocator, OCIClobLocator, OCIDateTime,
OCIExtProcContext, OCIInterval, OCIRowid, OCIDate, OCINumber,
OCIRaw, OCIString, short, signed, sql_context, sql_cursor,
struct, union, unsigned, utext, uvarchar, varchar, void,
volatile, a typedef name,
Syntax error at line 0, column 0, file /home/oracle/Open2/ps/BOF/src_EDS/ps_bof_eds_lrmdb.pc:
Error at line 0, column 0 in file /home/oracle/Open2/ps/BOF/src_EDS/ps_bof_eds_l
rmdb.pc
PCC-S-02201, Encountered the symbol "<eof>" when expecting one of the following:
; : an identifier, end-exec, random_terminal
Error at line 0, column 0 in file /home/oracle/Open2/ps/BOF/src_EDS/ps_bof_eds_l
rmdb.pc
PCC-F-02102, Fatal error while doing C preprocessing
make: *** [/home/oracle/Open2/ps/BOF/src_EDS/ps_bof_eds_lrmdb.c] Erreur 1
voici mon fichier sys_include :
sys_include=(/usr/include,/usr/lib/gcc/i386-redhat-linux/4.1.1/include,/usr/local/oracle/9.2.0/precomp/public)
include=(/usr/local/oracle/9.2.0/precomp/public)
include=(/usr/local/oracle/9.2.0/rdbms/demo)
include=/usr/local/oracle/9.2.0/network)
include=(/usr/local/oracle/9.2.0/plsql/public)
ltype=short
j'ai posté ici quelque partie du code:
in the file ps_parslib_parsers.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ... bool CheckAndAssign_String(UNSIGNED char dst_string[], UNSIGNED char *src_string, int max_len); void get_error_prod_mng(int *); void set_error_prod_mng(int ); void reset_error_prod_mng(void); void set_send_log_flag(void); void reset_send_log_flag(void); bool get_send_log_flag(void); ...
j'ai chérché pour la définition du fonction checkandassign_string function et je l'ai trouvé dans un autre répertoire dans le fichier the ps_parslib_parsers.c :
méme chose pour la fonction input_Queue_Data that qui figure dans les erreurs je l'ai trouvé dans un des lib .h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 ... /*----------------------------------------------------------------------------- FUNCTION CheckAndAssign_String ----------------------------------------------------------------------------- The function executes a copy between strings and then frees the source string; the length of the source string is checked before assigning it to the destination string. The function must be used only with str_val as the source string (it is the value returned by the parser). ---------------------------------------------------------------------------*/ bool CheckAndAssign_String(UNSIGNED char dst_string[], UNSIGNED char *src_string, int max_len) { IF (strlen((char *)src_string) <= max_len) { strcpy((char *)dst_string, (char *)src_string); /*if (strlen((char *)src_string) != 0) { */ free(src_string); /*} */ RETURN TRUE; } else { /*if (strlen((char *)src_string) != 0) { */ free(src_string); /*} */ RETURN FALSE; } } ...
je serai vraiment reconnaissant si vous m'aidiez a résoudre cela!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 /*============================================================================= INPUT QUEUE DATA ===========================================================================*/ /*----------------------------------------------------------------------------- MACROS ---------------------------------------------------------------------------*/ #define IQ_NAME_LEN 48 /* CLSQD.QName's length */ /*----------------------------------------------------------------------------- TYPES AND STRUCTURES ---------------------------------------------------------------------------*/ typedef struct { /* name of the alias queue */ UNSIGNED char name[IQ_NAME_LEN+1]; /* handle of the alias queue */ CLHOBJ handle; } Input_Queue_Data; /*============================================================================= QUEUE MANAGER DATA ===========================================================================*/ /*----------------------------------------------------------------------------- TYPES AND STRUCTURES ---------------------------------------------------------------------------*/ typedef struct { /* time of the wait reading operation on the BOF input queue */ UNSIGNED long wait_time; /* id of the connection to the queue manager */ CLHCONN connection_id; /* input queue of BOF process */ Input_Queue_Data BOF_iq; /* input queue of PSM Scheduler process */ Input_Queue_Data PSM_sched_iq; } Queue_Manager_Data;
Partager