2 Stimmen

Oracle Pro*C gibt den Fehler PCC-F-NOERRFILE zurück, kann die Fehlermeldungendatei nicht öffnen, Anlage PR2

Ich versuche, das Oracle Pro*C Demo-Programm unter Fedora 64-Bit OS mit der Express Edition von Oracle 11.2 zum Laufen zu bringen. Wenn das Makefile des Demo-Programms ausgeführt wird, gibt der Oracle-Vorcompilierer den folgenden Fehler aus und bricht ab:

PCC-F-NOERRFILE, Fehler beim Öffnen der Fehlermeldungsdatei, Facility PR2

Hier ist die vollständige Ausgabe des Vorcompilers:

$ 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]: Betrete Verzeichnis "/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]: Betrete Verzeichnis "/home/mvsagar/oracle/instantclient_11_2/sdk/demo"
../proc  iname=procdemo include=. sys_include=\(../include,/usr/include,/usr/lib/gcc-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, Fehler beim Öffnen der Fehlermeldungsdatei, Facility PR2
make[2]: *** [pc1] Fehler 1
make[2]: Verlasse Verzeichnis "/home/mvsagar/oracle/instantclient_11_2/sdk/demo"
make[1]: *** [procdemo.o] Fehler 2
make[1]: Verlasse Verzeichnis "/home/mvsagar/oracle/instantclient_11_2/sdk/demo"
make: *** [procdemo] Fehler 2

XE funktioniert wie vorgesehen. Ich konnte eine Tabelle mit SQLPlus erstellen. Ich habe Instant Client Basic und Precompiler-Zip-Dateien für 64-Bit-Linux heruntergeladen und installiert.

Haben Sie eine Idee, ob ich noch etwas installieren muss? Oder irgendwelche anderen Einstellungen vornehmen muss?

4voto

mvsagar Punkte 1810

Zum Schluss habe ich das Problem gelöst, indem ich den Wert der Umgebungsvariablen ORACLE_HOME und LD_LIBRARY_PATH geändert habe. Obwohl es einige Beispiele zur Lösung des Problems gab, die ich beim Googeln gefunden habe, war nicht klar, warum sie die Umgebungsvariable ändern mussten.

Ich habe Oracle-xe im Pfad installiert

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

als Root-Benutzer. Daher war ORACLE_HOME auf diesem Pfad eingestellt. Ich habe die Installationsdateien für den pro*C/C++-Client in ein separates Verzeichnis heruntergeladen

"/home/mvsagar/oracle/instantclient_11_2" 

um die XE-Installation nicht zu stören. Ich habe sie installiert, nachdem ich mich mit meinem Benutzernamen angemeldet habe, da dies keine Root-Rechte erforderte. Beim Kompilieren unter meinem Benutzernamen habe ich ORACLE_HOME auf den XE-Installationspfad belassen. Aber pro*C/C scheint zu erfordern, dass es auf den Pfad zurückgesetzt wird, in dem seine Dateien installiert wurden. Daher habe ich ORACLE_HOME und LD_LIBRARY_PATH wie folgt geändert:

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

Nachdem das erledigt war, verschwand der Fehler! Es reicht nicht aus, nur ORACLE_HOME zu setzen. Du musst auch LD_LIBRARY_PATH setzen.

Natürlich habe ich noch einige andere Compilerprobleme, die ich lösen muss.

Ich habe diesen Hinweis aus dem Blog http://oradim.blogspot.in/2009/09/getting-started-with-oracle-proc-on.html erhalten

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X