2

我正在尝试使用 oracle 11.2 的 express 版本使 oracle pro*c 演示程序在 Fedora 64 位操作系统上运行。运行演示程序的 make 文件时,oracle 预编译器给出以下错误并中止:

PCC-F-NOERRFILE,无法打开错误信息文件,工具 PR2

这是预编译器的完整输出:

$ make -f demo_proc_ic.mk
rm -rf SunWS_cachea
rm -rf ../../libclntsh.so
rm -rf procdemo procdemo.o procdemo.c procdemo.lis
make -f demo_proc_ic.mk build OBJS=procdemo.o EXE=procdemo
make[1]: Entering directory `/home/mvsagar/oracle/instantclient_11_2/sdk/demo'
rm -rf SunWS_cachea
rm -rf ../../libclntsh.so
make -f demo_proc_ic.mk PROCFLAGS="" PCCSRC=procdemo I_SYM=include= pc1
make[2]: Entering directory `/home/mvsagar/oracle/instantclient_11_2/sdk/demo'
../proc  iname=procdemo include=. sys_include=\(../include,/usr/include,/usr/lib/gcc-   lib/x86_64-redhat-linux/3.2.3/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include,/usr/lib64/gcc/x86_64-suse-linux/4.1.2/include,/usr/lib64/gcc/x86_64-suse-linux/4.3/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include\)

PCC-F-NOERRFILE, unable to open error message file, facility PR2
make[2]: *** [pc1] Error 1
make[2]: Leaving directory `/home/mvsagar/oracle/instantclient_11_2/sdk/demo'
make[1]: *** [procdemo.o] Error 2
make[1]: Leaving directory `/home/mvsagar/oracle/instantclient_11_2/sdk/demo'
make: *** [procdemo] Error 2

因此,XE 有效。我可以使用 sqlplus 创建一个表。我已经下载并安装了 64 位 linux 的即时客户端基本和预编译器 zip。

知道我是否必须安装其他任何东西吗?还是我必须进行的任何其他设置?

4

1 回答 1

4

最后我通过更改ORACLE_HOMELD_LIBRARY_PATH环境变量的值解决了这个问题。尽管有解决我在谷歌搜索时发现的相同问题的实例,但不清楚他们为什么必须更改 env var。

我在路径中安装了 Oracle-xe

"/u01/app/oracle/product/11.2.0/xe" 

作为根用户。因此ORACLE_HOME设置为此路径。我将 pro*c/c++ 客户端安装文件下载到单独的目录中

"/home/mvsagar/oracle/instantclient_11_2" 

以避免干扰 XE 安装。我在使用我的用户名登录我的帐户后安装了它,因为它不需要 root 权限。在我的用户名下编译时,我将 ORACLE_HOME 保留到 XE 安装路径。但 pro*C/C 似乎要求将其重置为其文件的安装路径。因此,将ORACLE_HOMELD_LIBRARY_PATH更改为“/home/mvsagar/oracle/instantclient_11_2”,如下所示:

ORACLE_HOME=/home/mvsagar/oracle/instantclient_11_2
export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

在此之后,错误消失了!仅设置ORACLE_HOME是不够的。您还需要设置LD_LIBRARY_PATH

当然,我还有一些其他编译器问题需要解决。

我从博客http://oradim.blogspot.in/2009/09/getting-started-with-oracle-proc-on.html得到了这个提示

于 2013-10-25T03:56:23.277 回答