现有程序正在从AIX转换为RedHat Linux。Oracle Pro*c在预兼容时会引起问题。bool
typedef
的文件cursesh.h
发生汇编错误。
预编译配置:
sys_include=($ORACLE_HOME/precomp/public,$ORACLE_HOME/precomp/syshdr,/usr/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include)
ltype=short
define=__x86_64__
包括路径与GCC编译器路径匹配。
请帮助我解决汇编错误。我需要包括其他预处理器符号或sys_include
中缺少任何内容吗?
Pro*C/C++: Release 12.1.0.1.0 - Production on Thu Jan 23 10:29:54 2014
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
System default option values taken from: /opt/oracle/product/12.1.0/precomp/admin/pcscfg.cfg
Syntax error at line 374, column 2, file /usr/include/curses.h:
Error at line 374, column 2 in file /usr/include/curses.h
bool _notimeout; /* no time out on function-key entry? */
.1
PCC-S-02201, Encountered the symbol "_Bool" 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,
pcscfg.cfg:
$ more /opt/oracle/product/12.1.0/precomp/admin/pcscfg.cfg
sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include)
ltype=short
define=__x86_64__
您应该在pcscfg.cfg
code=ansi
您还可以将编译器-FAG CODE=ANSI_C
设置为proc-flags