Linux下pro*c运行配置及常见两种错误

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

一般安装oracle时候都已经安装了pro*c,以下是Pro*C/C++的配置,以及链接到oracle实例。


在用户跟目录下

.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.pc

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

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

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

命令:

./login

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

=============================end=============================

在第一步出现如下错误时:

Error at line 34, column 11 in file /usr/include/stdio.h
# include <stddef.h>;
..........1
PCC-S-02015, unable to open include file
Error at line 31, column 10 in file /usr/include/bits/types.h
#include <stddef.h>;

(此时,只要去掉#include<stdio.h>即可编译链接并运行)

可在编译时,加入命令parse=none,即proc login.pc parse=none

================================================================
在第二步出现如下错误时:
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 ,然后重启。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值