LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1515|回复: 4

请教斑竹~~oracle中proc预处理问题~~请进来看看,帮我试试

[复制链接]
发表于 2004-4-11 19:51:22 | 显示全部楼层 |阅读模式
在redhat9成功装了oracle后了,发现proc预处理有问题。

具体表现为,如果.pc文件中包含“#include <stdio.h>”之类的语句,执行proc预处理时就会报无法打开在stdio.h中包含的stddef.h这个文件,我查看了stdio.h,里面有的确一行“#include <stddef.h>”,然后proc后面的错误信息就是报找不到size_t这个类型的定义(这个类型我在sco和aix上看了是在stddef中定义的,linux我忘看了~~)。

然而,我去/usr/include下看,真的没有stddef.h文件,而sco和aix下都是有的,这可能是编译器版本的略微区别吧,而在linux下写个c程序,里面加句“#include <stddef.h>”后编译照样能通过,证明gcc对stddef.h有内部的处理方法,可proc怎么办啊??它找不着stddef.h就报错啦~~~

我装的linux是redhat9,网上下的,典型安装那种,具体的内核版本和gcc版本我没查,估计都和缺省一样吧~~


今天搞了2个多小时,真的晕了,请斑竹帮我看看~~先谢了~~

ps:请各位兄弟高抬贵手,不要在此贴灌水,发表回帖前自己先试验一下,这个问题解决后力争进入“问题解决之道”,让大家都知道怎么处理这个问题,也谢谢先~~:help :help :help
发表于 2004-4-13 23:04:21 | 显示全部楼层
你没有安装proc
重新安装这个组件
安装,选择客户端,然后在组件选项中选择proc,很快就会装完
然后再试
发表于 2004-4-20 14:38:20 | 显示全部楼层

回复: 请教斑竹~~oracle中proc预处理问题~~请进来看看,帮我试试

最初由 鱼儿小 发表
在redhat9成功装了oracle后了,发现proc预处理有问题。

具体表现为,如果.pc文件中包含“#include <stdio.h>”之类的语句,执行proc预处理时就会报无法打开在stdio.h中包含的stddef.h这个文件,我查看了stdio.h,里面有的确一行“#include <stddef.h>”,然后proc后面的错误信息就是报找不到size_t这个类型的定义(这个类型我在sco和aix上看了是在stddef中定义的,linux我忘看了~~)。

然而,我去/usr/include下看,真的没有stddef.h文件,而sco和aix下都是有的,这可能是编译器版本的略微区别吧,而在linux下写个c程序,里面加句“#include <stddef.h>”后编译照样能通过,证明gcc对stddef.h有内部的处理方法,可proc怎么办啊??它找不着stddef.h就报错啦~~~

我装的linux是redhat9,网上下的,典型安装那种,具体的内核版本和gcc版本我没查,估计都和缺省一样吧~~


今天搞了2个多小时,真的晕了,请斑竹帮我看看~~先谢了~~

ps:请各位兄弟高抬贵手,不要在此贴灌水,发表回帖前自己先试验一下,这个问题解决后力争进入“问题解决之道”,让大家都知道怎么处理这个问题,也谢谢先~~:help :help :help

在.pc文件中,把c的头文件用下面两行括起来.

#ifndef ORA_PROC

#include <stdio.h>
..........
..........
#endif
 楼主| 发表于 2004-4-21 19:33:21 | 显示全部楼层
2楼说的不对,proc我怎么可能没装了,我怎么着也在aix和solais下也混了快3年了~~

3楼的,我没来得及试,不过我可以告诉你,如果我不写#include <stdio.h>,预处理和编译没问题的,前提是.pc这个程序比较简单,如仅仅连接一下数据库再断开之类的。

如果程序复杂点时,必须引用头文件时,就报错了,因为无论那个头文件饶到最后都会引用stdio.h
发表于 2004-4-22 20:58:21 | 显示全部楼层
最初由 鱼儿小 发表
3楼的,我没来得及试,不过我可以告诉你,如果我不写#include <stdio.h>,预处理和编译没问题的,前提是.pc这个程序比较简单,如仅仅连接一下数据库再断开之类的。

如果程序复杂点时,必须引用头文件时,就报错了,因为无论那个头文件饶到最后都会引用stdio.h

很对.
#include <stdio.h> 是给C编译器用的,proc预编译时不知道到那里去找<stdio.h>(也用不着).所以PROC运行时定义了一个环境变量ORA_PROC来控制proc和c编译时各自
作自己的事情.
头文件只有C编译器才用,proc是不用的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表