免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: simhare
打印 上一主题 下一主题

[C] linux下oracle的pro*c的问题 [复制链接]

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
11 [报告]
发表于 2009-06-24 11:05 |只看该作者
不知道你linux下的oracle安装路径;
这是我在window下的安装路径:D:\oracle\product\10.2.0\client_1\precomp\public
其中包括头文件:
sqlca.h
......

论坛徽章:
0
12 [报告]
发表于 2009-06-24 11:07 |只看该作者
原帖由 simhare 于 2009-6-24 11:02 发表
#include
#include
-----------------------
我的pc文件就是这么写的,中间没有空格,这应该不影响吧?


空格没影响。

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
13 [报告]
发表于 2009-06-24 11:10 |只看该作者

回复 #4 mgqw 的帖子

环境变量。

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
14 [报告]
发表于 2009-06-24 11:12 |只看该作者
gcc编译时引入头文件与库文件。

论坛徽章:
0
15 [报告]
发表于 2009-06-24 11:15 |只看该作者
原帖由 光速 于 2009-6-24 11:12 发表
gcc编译时引入头文件与库文件。


我只知道OCI需要oracle库文件,应该proc也需要库文件吧。
假设你的库文件在/home/oracle/lib/libclntsh.so命令如下:
-L/home/oracle/lib -lclntsh

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
16 [报告]
发表于 2009-06-24 11:26 |只看该作者
proc应该是一个将.pc转化为.c或者.cc的一个工具。至于是否引入库文件无关紧要,重要的是gcc编译时需要这些文件。
俺哪里说的不对,还请指教。谢谢!

论坛徽章:
0
17 [报告]
发表于 2009-06-24 11:36 |只看该作者

回复 #10 光速 的帖子

我是linux环境,呵呵

论坛徽章:
0
18 [报告]
发表于 2009-06-24 11:37 |只看该作者

回复 #14 mgqw 的帖子

我测过了:
-------
[oracle@oracle11gTux1 lesson1]$ gcc -o tt tt.c -I /u01/oracle/precomp/public -L /u01/oracle/lib -l clntsh
tt.c:117: error: syntax error before string constant
tt.c:125: error: syntax error before '}' token
tt.c:131: error: syntax error before string constant
tt.c:143:16: stdio: No such file or directory
tt.c:144:17: stdlib: No such file or directory
[oracle@oracle11gTux1 lesson1]$
-------------------
这样就不报:
tt.c:166: error: `sqlca' undeclared (first use in this function)
这个错误了,
但是还是找不到stdio和stdlib两个文件

[ 本帖最后由 simhare 于 2009-6-24 11:42 编辑 ]

论坛徽章:
0
19 [报告]
发表于 2009-06-24 11:41 |只看该作者

回复 #14 mgqw 的帖子

117 extern "C" {
    118   void sqlcxt (void **, unsigned int *,
    119                struct sqlexd *, const struct sqlcxp *);
    120   void sqlcx2t(void **, unsigned int *,
    121                struct sqlexd *, const struct sqlcxp *);
    122   void sqlbuft(void **, char *);
    123   void sqlgs2t(void **, char *);
    124   void sqlorat(void **, unsigned int *, void *);
    125 }
    126
    127 // Forms Interface
    128 static const int IAPSUCC = 0;
    129 static const int IAPFAIL = 1403;
    130 static const int IAPFTL  = 535;
    131 extern "C" { void sqliem(unsigned char *, signed int *); }
    132

[ 本帖最后由 simhare 于 2009-6-24 11:43 编辑 ]

论坛徽章:
0
20 [报告]
发表于 2009-06-24 11:44 |只看该作者

回复 #14 mgqw 的帖子

hello.c没有问题啊:
main()
{
printf("hello");
}
这个正常!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP