在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 ,然后重启。