linux c oci 配置环境 编程 详解
2009-09-30 11:31
288 查看
最近在做linux下的c与oralce的操作。为了直接操作oracle数据的内核,是存取的更快,我选择了OCI——oracle提供的c语言接口,来作为开发的工具。
首先我先查了很多关于OCI提供的函数资料,这些资料如果你有需要联系我,我会发到你的邮箱里:yzzhang.gw.con@163.com这是我的邮箱;
下面我先说一下在linux用c去操作oracle需要什么样的环境;
a;oralce的客户端是必须的,
b;oracle的sdk也是必须的;
以上两个软件你可以到这个网站去下载:http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
我在的rpm版本的,这样的话,省去了很多的配置环境的过程。
安装指令: rpm -ivh 你下载的rpm包的名称(要全称)
安装完以后,在编一个简单的测试代码(这个我就不提供了);
最后就是最主要的编译了:gcc
就是这个gcc用去了我2天的时间,其中的参数,令我很头疼,不过,终于搞定:
gcc指令:gcc -o t -I/usr/include/oracle/10.2.0.4/client -L/usr/lib/oracle/10.2.0.4/client/lib -lclntsh OCITest.c
(同文件的路径) (动态库的路径)
如果,你是默认装,完全可以用我提供的指令。如果你指定了路径,那就必须把路径修改;
这样的话,你完全可以编译成功。我很高兴,终于编译成功了,但是,令我头疼的还在后面呢。
我执行程序,出现了错误:error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory
我初步分析是动态库的问题,花了2个小时,查查了动态库的有关资料。才知道linux下有一个/ect/ld.so.conf的文件,这个文件是存储动态库路径的。你必须把路径加入到这个文件中:echo "/usr/lib/oracle/10.2.0.4/client/lib ">>/etc/ld.so.conf
加入完之后,本以为可以执行了,但是还出现错误,在查查了资料,原来还得提交。
执行:/sbin/ldconfig
还需要在usr/lib/oracle/10.2.0.4/client 下建立network,然后在network下建立admin,在admin下建立tnsnames.ora,其中tnsnames.ora要修改权限,在root用户下把器改为所有用户的都能执行。chmod 777 tnsnames.ora
内容如下: 192.168.1.201 = //名字任意,对应于OCIServerAttach(srvhp,p_err,(text *)"192.168.1.201..)第三个参数
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
到此,程序完全可以运行,两天的劳动没有白费,希望写出来,能给跟我遇到同样问题的人一点点的提示。
首先我先查了很多关于OCI提供的函数资料,这些资料如果你有需要联系我,我会发到你的邮箱里:yzzhang.gw.con@163.com这是我的邮箱;
下面我先说一下在linux用c去操作oracle需要什么样的环境;
a;oralce的客户端是必须的,
b;oracle的sdk也是必须的;
以上两个软件你可以到这个网站去下载:http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
我在的rpm版本的,这样的话,省去了很多的配置环境的过程。
安装指令: rpm -ivh 你下载的rpm包的名称(要全称)
安装完以后,在编一个简单的测试代码(这个我就不提供了);
最后就是最主要的编译了:gcc
就是这个gcc用去了我2天的时间,其中的参数,令我很头疼,不过,终于搞定:
gcc指令:gcc -o t -I/usr/include/oracle/10.2.0.4/client -L/usr/lib/oracle/10.2.0.4/client/lib -lclntsh OCITest.c
(同文件的路径) (动态库的路径)
如果,你是默认装,完全可以用我提供的指令。如果你指定了路径,那就必须把路径修改;
这样的话,你完全可以编译成功。我很高兴,终于编译成功了,但是,令我头疼的还在后面呢。
我执行程序,出现了错误:error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory
我初步分析是动态库的问题,花了2个小时,查查了动态库的有关资料。才知道linux下有一个/ect/ld.so.conf的文件,这个文件是存储动态库路径的。你必须把路径加入到这个文件中:echo "/usr/lib/oracle/10.2.0.4/client/lib ">>/etc/ld.so.conf
加入完之后,本以为可以执行了,但是还出现错误,在查查了资料,原来还得提交。
执行:/sbin/ldconfig
还需要在usr/lib/oracle/10.2.0.4/client 下建立network,然后在network下建立admin,在admin下建立tnsnames.ora,其中tnsnames.ora要修改权限,在root用户下把器改为所有用户的都能执行。chmod 777 tnsnames.ora
内容如下: 192.168.1.201 = //名字任意,对应于OCIServerAttach(srvhp,p_err,(text *)"192.168.1.201..)第三个参数
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
到此,程序完全可以运行,两天的劳动没有白费,希望写出来,能给跟我遇到同样问题的人一点点的提示。
相关文章推荐
- linux c oci 配置环境 编程 详解
- linux c oci 配置环境 编程 详解
- DirectX学习1----配置编程环境
- Hadoop2.2.0单节点安装和配置环境图文详解
- hadoop编程(1)-单机环境、伪分布式环境配置
- Android中JNI使用详解(2)---Android Studio中NDK环境配置
- Emacs之Python编程环境配置 - elpy
- 【window10下notepad++编程软件配置python编程环境详细图文教程】
- 详解LUA开发工具及其环境配置
- unix环境编程---apude.h文件配置
- Mac环境下配置tomcat的步骤详解
- Vim配置及说明 IDE编程环境
- 【机器学习实践(1)】配置python编程环境
- <unix 环境高级编程> 环境配置
- java の JDK环境变量配置详解
- VS2010远程调试环境配置详解
- 将Emacs配置成一个C/C++的IDE编程环境
- unity3d-配置Android环境,打包发布Apk流程详解
- Unix环境高级编程在linux下的源码配置
- Java Struts2 框架入门详解(二)Struts的环境配置