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 :



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;
   }
}
...
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
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;
je serai vraiment reconnaissant si vous m'aidiez a résoudre cela!!