Linux下Oracle Pro*C 预处理错误

为了迎接这一波虚拟化浪潮,客户原有运行在Linux PC上的一套老的缴费系统需要迁移到虚拟机。

某一部分是在Linux下基于Oracle Pro*C开发,我要将这个程序迁移到CentOS5.4的VPS上面。

编译这个小程序时出现了这样一类错误:

1 Error at line 30, column 10 in file /usr/include/sched.h
2 #include <stddef.h>
3 .........1
4 PCC-S-02015, unable to open include file
5 Syntax error at line 201, column 37, file /usr/include/bits/sched.h:
6 Error at line 201, column 37 in file /usr/include/bits/sched.h
7 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
8 ....................................1
9 PCC-S-02201, Encountered the symbol "__setsize" when expecting one of the following:

 

由于是原有代码,所以肯定是编译环境问题。排查了半天,才发现是预处理程序的配置错误导致了无法找到正确的头文件。

这个配置文件存在于

${ORACLE_HOME}/precomp/admin/pcscfg.cfg

查找stddef.h文件的真正位置:

[~]$ locate stddef.h
/usr/include/linux/stddef.h
/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h


/usr/lib/gcc/i386-redhat-linux/4.1.1/include/

加入到CFG文件中:

sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc/i386-redhat-linux/4.1.1/include/)


重新编译,通过。



posted @ 2012-03-27 22:00  sin4's  阅读(544)  评论(0编辑  收藏  举报