PRO*C编译遇到一个错误PCC-S-02201_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3058 | 回复: 0   主题: PRO*C编译遇到一个错误PCC-S-02201        下一篇 
shylone
注册用户
等级:下士
经验:199
发帖:90
精华:0
注册:2011-11-24
状态:离线
发送短消息息给shylone 加好友    发送短消息息给shylone 发消息
发表于: IP:您无权察看 2015-4-17 11:10:57 | [全部帖] [楼主帖] 楼主

高手来 ,PRO*C编译遇到一个错误PCC-S-02201,在线等
系统:SunOS
数据库:Oracle 9i

出现很多PCC-S-02201,到晚上找了一下,有很多类似的问题,主要是
1.修改$ORACLE_HOME/precomp/admin/pcscfg.cfg
2.编译选项parse=none

我试了都没解决问题,高手帮帮忙。

我的pcscfg.cfg文件如下:

sys_include=(/usr/include,/usr/include/sys,oracle/ora920/precomp/public,/usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/include)
include=$(ORACLE_HOME)/precomp/public
include=$(ORACLE_HOME)/precomp/hdrs
include=$(ORACLE_HOME)/rdbms/public
include=$(ORACLE_HOME)/rdbms/demo
include=$(ORACLE_HOME)/network/include
include=$(ORACLE_HOME)/network/public
include=$(ORACLE_HOME)/plsql/public
ltype=short
define=__x86_64__


编译错误信息如下:

Syntax error at line 69, column 2, file /usr/include/sys/uio.h:
Error at line 69, column 2 in file /usr/include/sys/uio.h
lloff_t _uio_offset; /* file offset */
.1
PCC-S-02201, Encountered the symbol "lloff_t" when expecting one of the followin
g:
} 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,
The symbol "enum," was substituted for "lloff_t" to continue.
Syntax error at line 72, column 2, file /usr/include/sys/uio.h:
Error at line 72, column 2 in file /usr/include/sys/uio.h
lloff_t _uio_limit; /* u-limit (maximum byte offset) */
.1
PCC-S-02201, Encountered the symbol "lloff_t" when expecting one of the followin
g:
} 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,
The symbol "enum," was substituted for "lloff_t" to continue.
Syntax error at line 52, column 2, file /usr/include/sys/socket_impl.h:
Error at line 52, column 2 in file /usr/include/sys/socket_impl.h
sa_family_t sa_family; /* address family */
.1
PCC-S-02201, Encountered the symbol "sa_family_t" when expecting one of the foll
owing:
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,
The symbol "enum," was substituted for "sa_family_t" to continue.
------解决方案--------------------


检查头文件目录是否就是期望的目录,Oracle缺省设置的目录有时候需要修改

/usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/include是否包含编译器提供的头

一般设置成如下所示的造型也就可以了

sys_include=(/usr/include,/usr/include/sys,oracle/ora920/precomp/public,/usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/include)
ltype=short
define=__x86_64__
------解决方案--------------------


我感觉是lloff_t的类型没有定义,所以可能是在$ORACLE_HOME/precomp/admin/pcscfg.cfg 没有包括定义lloff_t需要的头文件的目录,或者定义这个类型需要某些宏,这些宏没有在$ORACLE_HOME/precomp/admin/pcscfg.cfg 中定义。

我是根据我的经验猜的,不一定准确,仅供参考

------解决方案--------------------

先看下lloff_t的类型是定义在哪个头文件里面的,假设是a.h,然后把a.h所在的路径加到红色标记路径的前面再试下

sys_include=(/usr/include,/usr/include/sys,oracle/ora920/precomp/public,/usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/include)


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论