Linux下pro*c运行配置

在Linux下运行.pc程序时,需要用到proc命令。

-配置Pro*C/C++,以及链接到Oracle。

一般安装oracle时候都已经安装了pro*c,所以一般不需要再配置/etc/profile,如果是后来单独安装,看先这个文文件里是否有pro*c的目录,否则在执行proc的时候可能会提示报错。


在用户跟目录下

.bash_profile文件中

加入

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

用. ./.bash_profile运行配置文件,使得配置生效

2,修改文件$ORACLE_HOME/precomp/admin/pcscfg.cfg(新加入内容)

sys_include=/usr/lib/gcc-lib/i386-RedHat-linux/3.2.3/include


至此,我们可以开始写pc源程序了

以下是一个链接本机oracle数据库的程序。

/*

login.pc

用户名:soft;密码soft;全局数据库名:mfo

*/

#include<stdio.h>
#include "sqlca.h"

EXEC SQL BEGIN DECLARE SECTION;
char *uid="soft/soft@mfo";
EXEC SQL END DECLARE SECTION;

int main()
{
EXEC SQL CONNECT :uid;
if(sqlca.sqlcode==0)
   printf("connect success...\n");
else
   printf("%s",sqlca.sqlerrm.sqlerrmc);
}

1,proc预编译 

命令:proc login.cp

2,通过第一步生产login.c文件,现在就要通过g++编译源文件

命令:g++ -o login login.cc -I $ORACLE_HOME/precomp/public/ -L $ORACLE_HOME/lib/ -l clntsh

3,通过上一步生成login可执行文件。执行login

命令:


chcon -t texrel_shlib_t $ORACLE_HOME/lib/*.so


./login

结果显示connect success...,成功。。。。

=============================end=============================
error while loading shared libraries: /oracle/product/10.2.0/lib/libnnz10.so: cannot restore seg(2011-03-06 21:55:39)转载标签: cannotrestoresegmentprotafterrelocit 分类: Linux 
error while loading shared libraries: /oracle/product/10.2.0/lib/libnnz10.so: cannot restore segment prot after reloc: Permission denied

处理方法:

关闭SELINUX


Redhat Enterprise Linux中如何关闭SELinux?
红帽企业 Linux 4 包括了一个 SELinux 的实现。SELinux 代表了用户,程序以及进程间相互交流的主要变化。在这个发行版本中,SELinux 被默认安装并被开启使用。

在安装的过程中,您可以选择禁用 SELinux,或是设置它只记录警告信息,或是使用它的只在以下守护进程中有效的目标化策略:dhcpd、httpd、mysqld、named、 nscd、ntpd、portmap、postgres、snmpd、squid、syslogd

目标化策略在默认的情况下被启用。

红帽企业 Linux 4 使用在 ext2/ext3 文件系统上的扩展属性来支持 SELinux。这就意味着,当一个文件被写到默认挂载的 ext2/ext3 文件系统中时,一个扩展的属性也会被写入。

当系统有 红帽企业 Linux 4 和 红帽企业 Linux 2.1 双重启动的时候,这就可能会产生一些问题。红帽企业 Linux
2.1 内核不支持文件的扩展属性,当它遇到文件的扩展属性时,系统可能会崩溃。

有Linux桌面用户在安装了Redhat Enterprise Linux 4.0后,可能会需要关闭SELinux,正确的方法是:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。

相关推荐