[求助]red hat enterprise as 3+oracle 9.2.0.4.0 proc无法预编译

这些代码在unix环境下编译非常正常,移植到linux环境下始终proc预编译不过,
但cc一般的程序都能编译通过,
在网上查了所有的资料报以下错误是因为$ORACLE_HOME/precomp/admin下的pcscfg.cfg的配置问题,
但试了很多种配置方法都没有效果,而且$ORACLE_HOME/precomp有很多目录都跟网上描述的不一样,
比如:rdbms,plsql,oracore,network等目录在$ORACLE_HOME/precomp下根本找不到,
是否还需要安装什么oracle组件,还是我的配置有什么问题?
现在把我的程序所以配置贴上:
请大家帮帮忙
#############################################################
$ORACLE_HOME/precomp/admin下的pcscfg.cfg配置如下:
sys_include=(/usr/include,/usr/include/linux)
include=/opt/ora9/product/9.2/rdbms/public
include=/opt/ora9/product/9.2/rdbms/demo
include=/opt/ora9/product/9.2/plsql/public
include=/opt/ora9/product/9.2/otrace/public
include=/opt/ora9/product/9.2/plsql/include
include=/opt/ora9/product/9.2/precomp/syshdr
ltype=short
#################################################################
makefile配置如下:
WORKDIR=$(HOME)
INCLPATH=-I. -I$(HOME)/include -I$(ORACLE_HOME)/precomp/public
LIBPATH=-L$(WORKDIR)/lib -L$(ORACLE_HOME)/lib
BIN=$(WORKDIR)/bin
ARFLAGS=ruv
AR=ar
PROC=proc parse=none include=$(WORKDIR)/include $(ORACLE_HOME)/precomp/public
CC=cc
HSLIB=$(WORKDIR)/lib/hslib.a
ORALIB=-lclntsh -lcore9 -lm `cat $(ORACLE_HOME)/lib/sysliblist` -lm
PCLIBFILE=aaa
$(PCLIBFILE):
  $(PROC) [email=iname=$@.pc]iname=$@.pc[/email]
  $(CC) -c [email=$@.c]$@.c[/email] $(INCLPATH)
  $(AR) $(ARFLAGS) $(HSLIB) [email=$@.o]$@.o[/email]
  -rm [email=$@.o]$@.o[/email] [email=$@.c]$@.c[/email] [email=$@.lis]$@.lis[/email]
  echo "$@ Is Updated.."
#################################################################
aaa.pc代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "message.h"
EXEC SQL INCLUDE aaa.h;
EXEC SQL INCLUDE SQLCA;
int     aaa()
{
        EXEC SQL BEGIN DECLARE SECTION;
  HS_DEFINE_INFO define;
         char syscode[2+1];
        EXEC SQL END DECLARE SECTION;
        
        memset(syscode,0,sizeof(syscode));
memset(&define,0,sizeof(HS_DEFINE_INFO));
  
EXEC SQL select * INTO :define
  FROM hs_define_info
  WHERE c_sys_code='1';
        return(0);
}
#################################################################
aaa.h代码如下:
#ifndef AAA_H
#define AAA_H
#define SQLCODE         (sqlca.sqlcode)
#define SQLNOTFOUND     (1403)
#define SQLNULL         (-1405)
typedef struct _hs_define_info{
int i_sys_serial;
char c_sys_code[2+1];
char c_sys_name[40+1];
char c_host_name[20+1];
char c_comm_para[40+1];
char c_mac_mode[1+1];
char c_sign_flag[1+1];
char c_sign_date[8+1];
char c_sign_time[6+1];
char c_main_key[16+1];
char c_work_key[16+1];
char c_comment[80+1];
}HS_DEFINE_INFO;
#################################################################
make aaa报错如下:
proc parse=none include=/home/hmfms/include /opt/ora9/product/9.2/precomp/public iname=aaa.pc
Pro*C/C++: Release 9.2.0.4.0 - Production on Tue Aug 7 13:23:21 2007
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
System default option values taken from: /opt/ora9/product/9.2/precomp/admin/pcscfg.cfg
Syntax error at line 13, column 4, file aaa.pc:
Error at line 13, column 4 in file aaa.pc
                        HS_DEFINE_INFO define;
...1
PCC-S-02201, Encountered the symbol "HS_DEFINE_INFO" when expecting one of the f
ollowing:
   auto, char, const, double, enum, extern, float, int, long,
   ulong_varchar, OCIBFileLocator OCIBlobLocator,
   OCIClobLocator, OCIDateTime, OCIExtProcContext, OCIInterval,
   OCIRowid, OCIDate, OCINumber, OCIRaw, OCIString, register,
   short, signed, sql_context, sql_cursor, static, struct,
   typedef, union, unsigned, utext, uvarchar, varchar, void,
   volatile, a typedef name, a precompiled header, exec oracle,
   exec oracle begin, exec, exec sql, exec sql begin,
   exec sql end, exec sql type, exec sql var, exec sql include,
The symbol "exec," was substituted for "HS_DEFINE_INFO" to continue.
Error at line 0, column 0 in file aaa.pc
PCC-F-02102, Fatal error while doing C preprocessing
make: *** [aaa] Error 1
#################################################################

不知道是哪里出错了,请各位高手大侠帮我诊断诊断,多谢了!!!