PROC程序在IBM机上编译不过去,HP上是没有问题的
各位达人,小弟有此问题求助:
================================================================
System default option values taken from: /oracle/product/9.2.0/precomp/admin/pcscfg.cfg
Syntax error at line 1316, column 2, file MainDeal.pc:
Error at line 1316, column 2 in file MainDeal.pc
ub4 l_iLen = 0, l_iOffSet;
.1
PCC-S-02201, Encountered the symbol "ub4" when expecting one of the following:
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 "enum," was substituted for "ub4" to continue.
================================================================
非常奇怪,那个ub4在ORA的头文件里头已经有定义了啊,而且我已经包含进来了,为什么还会报这个错,编译命令行如下:
proc sqlcheck=syntax release_cursor=yes def_sqlcode=yes MODE=ANSI ireclen=256 include=/lbill/tuxedo/tuxapp/sendlbas/src include=/lbill/tuxedo/tuxapp/sendlbas/src/include include=/home/tuxedo/tuxedo8.1/include include=/oracle/product/9.2.0/rdbms/demo include=/oracle/product/9.2.0/rdbms/public include=/oracle/product/9.2.0/plsql/public include=/oracle/product/9.2.0/network/public define=__NO_CICS define=PROGRAM_GZ parse=none iname=MainDeal.pc这个问题困扰小弟两天了,GOOGLE了大江南北,都没法解决,各位能给点指导意见,不胜感激
各位达人,小弟有此问题求助:
================================================================
System default option values taken from: /oracle/product/9.2.0/precomp/admin/pcscfg.cfg
Syntax error at line 1316, column 2, file MainDeal.pc:
Error at line 1316, column 2 in file MainDeal.pc
ub4 l_iLen = 0, l_iOffSet;
.1
PCC-S-02201, Encountered the symbol "ub4" when expecting one of the following:
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 "enum," was substituted for "ub4" to continue.
================================================================
非常奇怪,那个ub4在ORA的头文件里头已经有定义了啊,而且我已经包含进来了,为什么还会报这个错,编译命令行如下:
proc sqlcheck=syntax release_cursor=yes def_sqlcode=yes MODE=ANSI ireclen=256 include=/lbill/tuxedo/tuxapp/sendlbas/src include=/lbill/tuxedo/tuxapp/sendlbas/src/include include=/home/tuxedo/tuxedo8.1/include include=/oracle/product/9.2.0/rdbms/demo include=/oracle/product/9.2.0/rdbms/public include=/oracle/product/9.2.0/plsql/public include=/oracle/product/9.2.0/network/public define=__NO_CICS define=PROGRAM_GZ parse=none iname=MainDeal.pc这个问题困扰小弟两天了,GOOGLE了大江南北,都没法解决,各位能给点指导意见,不胜感激
对了,忘记说了,一开始从HPUX移植到IBM/AIX来的时候,编译出现的问题是
proc mode=ansi DYNAMIC=ANSI def_sqlcode=yes include=/opt/aCC/include include=/lbill/tuxedo/tuxapp/sendlbas/src include=/lbill/tuxedo/tuxapp/sendlbas/src/include include=/oracle/product/9.2.0/rdbms/demo include=/oracle/product/9.2.0/rdbms/public include=/oracle/product/9.2.0/plsql/public include=/oracle/product/9.2.0/network/public parse=full iname=dyn.pcPro*C/C++: Release 9.2.0.8.0 - Production on Thu Jan 24 11:42:10 2008Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.System default option values taken from: /oracle/product/9.2.0/precomp/admin/pcscfg.cfgSyntax error at line 135, column 2, file /usr/include/standards.h:
Error at line 135, column 2 in file /usr/include/standards.h
#warning The -qdfp option is required to process DFP code in headers.
.1
PCC-S-02014, Encountered the symbol "warning" when expecting one of the followin
g: a numeric constant, newline, define, elif, else, endif,
error, if, ifdef, ifndef, include, line, pragma, undef,
an immediate preprocessor command, a C token,
The symbol "newline," was substituted for "warning" to continue.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
后来把那个PARSE设置为NONE的话,那么,就是出现第一贴的那个错误,这个错误是不是编译器有问题,还是数据库按装有问题,需要一些什么补丁之类的不??
比较参数平台: Linux fc7-2.sanss.com 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:47:07 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
Oracle 9i: window xp 机器上
数据库名:ngn我的Makefile代码如下: ###########################################################################
# Makefile to build sample applications.
###########################################################################
APPLPATH = .
INCLUDE = -I$(APPLPATH)/inc
MAINFILES = $(APPLPATH)/src
connectDb : connectDb.o
gcc -Wall -g -o connectDb connectDb.o -L"$(ORACLE_HOME)/lib" -lclntsh
connectDb.o : $(MAINFILES)/connectDb.pc
proc PARSE=NONE INAME=$(MAINFILES)/connectDb.pc ONAME=$(MAINFILES)/connectDb.c INCLUDE=$(ORACLE_HOME)/precomp/public USERID=ngnsiguser/ngnsiguser@ngn IRECLEN=512 MODE=ANSI DYNAMIC=ANSI THREADS=YES SQLCHECK=SEMANTICS
gcc $(INCLUDE) -Wall -c -g $(MAINFILES)/connectDb.c -DDEBUG
valgrind:
valgrind --tool=memcheck --leak-check=full --show-reachable=yes -v -q ./connectDbclean:
\rm -rf *.bak *.txt *.log *.o $(MAINFILES)/*.lis $(MAINFILES)/*.bak $(MAINFILES)/*.c connectDb
EXEC SQL BEGIN DECLARE SECTION;
char l_acValue[VALUE_NUM]; /*---1*/
EXEC SQL ENDDECLARE SECTION;
这个在HP上的PROC编译是没有问题,但是在IBM上就会报错