• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Ubuntu12.10x64Oracle11gPro*c/c++环境配置

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一开始在Oracle的bin目录中调用proc会有很多错误,找不到库,然后编译错误等等。下面说一下我的环境配置过程:

1)设置动态库路径:

可以到etc/profile里面加入,不过我是写到~/.bashrc文件里的,加入下面的语句:

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib;
export LD_LIBRARY_PATH

重新打开终端就可以了。

2)编译问题有点多,我这里只写我目前遇到的问题,和我的解决办法

首先是编译跳出N多屏长度的error,终端上滚动条托会顶部也显示不完,最后只好编译的时候$ORACLE_HOME/bin/proc file.pc | more

分屏显示,看到有很多.h文件找不到,在网上查资料,发现需要去配置如下文件:

$ORACLE_HOME/precomp/admin/pcscfg.cfg

进去一看,include里面包含了很多redhat和suse的路径,我这里可是用的ubuntu喔,果断把redhat和suse相关的路径都删除,但是这个时候我该写什么路径了,看看刚才编译的报错,有一个叫stddef.h的文件,这不是c的标准库的定义文件嘛,说明proc需要调用c语言的标准库,这不就好办了嘛,方法如下:

找标准库的头文件路径:

sudo find / -name "stddef.h"

我的搜索结果如下:

/usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h
/usr/lib/gcc/x86_64-linux-gnu/4.4/include/stddef.h
/usr/lib/syslinux/com32/include/bitsize/stddef.h
/usr/lib/syslinux/com32/include/stddef.h
/usr/src/linux-headers-3.5.0-17/include/linux/stddef.h
/usr/include/linux/stddef.h

第一个路径就是我需要的,其他的应该不是喔。当然我没有试验过,但是gcc的肯定没错,所以我这里使用第一个,将路径写道pcscfg.cfg文件中去即可。

 

好了继续编译...

这次proc filename.pc文件没有问题,proc生成了.c的c语言源文件,然后使用gcc filename.c -o main 又是错误,提示“致命错误:sqlca.h:没有那个文件或目录”,所以我马上使用find命令找到了这个文件的路径,然后gcc filename.c -I $ORACLE_HOME/precomp/public -o main依然错误,这次是login.c:(.text+0x1b9):对‘sqlcxt’未定义的引用,这一看应该还是没有链接到库文件。最后查资料,果然还有库文件需要说明,最后成功通过编译的完整命令如下:

gcc login.c -I $ORACLE_HOME/precomp/public -L$ORACLE_HOME/lib -lclntsh -o main

最后执行main,成功运行...

好的这样就完成了pro*c/c++的环境搭建了。过两天再看看windows下的环境搭建,先写到这里。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
使用C#创建webservice及三种调用方式发布时间:2022-07-13
下一篇:
C#PPT查找替换发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap