Proc*C编译出错

Error in Proc*C compilation

本文关键字:出错 编译 Proc      更新时间:2023-10-16

我正在尝试使用以下预编译器选项在Red Hat Linux 4.1.2-44上编译.pc文件(能够在HP和Solaris上编译):

PROCFLAGS =*maxopencursors*=100PARSE=NONEuserid/db2poc@mydbVARCHAR=YEScode=CPPCPP_SUFFIX=CPP持续时间=会话sqlcheck=1full包含>=/app1/myuser/Application/Source/HeaderSYS_include=/oradata1/ora11g/app/ora11g/product/11.2.0/dbhome_1/rdbms/public,/oradata1/ora11g/apps/ora11g/product/11.2.00/dbhome_1/public,/oradata1/ora11g/app/ora11g/product/11.2.0/dbhome_1/rdbms/plsql/public,/oradata1/ora11g/moduct/11.2.0/dbhome_1/xdk/include,/usr/include/c++/3.4.6/backward

问题是,无论EXEC SQL DECLARE SECTION中有宏或typedef数据类型,它都会抛出一个错误,说PCC-S-02322,发现宏的未定义标识符,并且在typedef数据类型的情况下抛出以下错误:

PCC-S-02201,在预期以下情况时遇到符号"SHORT":

auto,char,const,double,enum,extern,float,int,long*ulong_varchar,OCIBFileLocator OCIBlobLocator*OCIClobLocator、OCIDateTime、OCExtProcContext、OCIntervalOCIRowid、OCIDate、OCINumber、OCIRaw、OCIString、寄存器、*short,signed,sql_context,sql_cursor,static,struct*typedef,union,unsigned,utext,uvarchar,varchar,voidvolatile,typedef名称,预编译头,exec oracleexec oracle begin,exec,exec sql,exec sql beginexec-sql-end,exec-sql-type,exec-sql var,exec-sql include,

符号"enum"被替换为"SHORT"以继续

请提出建议。感谢

您可以首先使用c预编译器预编译源代码:

cpp-p-E您的文件.src-o您的文件.dst

然后你会得到宏解包。

-p选项是必需的,因为Pro*C程序可能会与线标记混淆。

-需要E选项,因为Pro*C程序可能与非传统输出混淆。