Frage

Wenn ich versuche, precompile-a *.pc-Datei enthält #Warnung Richtlinie ich erhalte den folgenden Fehler:

PCC-S-02014, Begegnete das symbol "Warnung", wenn erwartet Sie eine der folgenden:(bla bla bla).

Kann ich den irgendwie überzeugen, Pro*C, ignorieren Sie die Sache, wenn Sie nicht wissen, was zu tun mit es?Ich kann nicht entfernen Sie die #warning Richtlinie als es ist verwendet in eine header-Datei, die ich nicht ändern kann und muss.

War es hilfreich?

Lösung

Nach der Pro*C/C++ Programmer ' s Guide (Kapitel 5 "Erweiterte Themen"), Pro*C ignoriert eine Reihe von Präprozessor-Direktiven einschließlich #Fehler und #pragma, aber leider nicht #Warnung.Seit Ihrer Warnung-Richtlinien enthalten sind, die in einer header-Datei, Sie können möglicherweise verwenden Sie die ORA_PROC makro:

#ifndef  ORA_PROC
#include <irrelevant.h>
#endif

Für einige Grund, Pro*C Fehler, wenn Sie versuchen, sich zu verstecken eine gerade #Warnung mit, dass Art und Weise, jedoch.

Andere Tipps

verwenden Sie die option parse=none mit proc

Das können Sie nicht.Pro*C kennt nur #if und #include.Mein bester Rat wäre, Vorverarbeiten, dass die Datei als Teil Ihres build-Prozesses zu entfernen, Sachen, Pro*C nicht mögen.So etwas wie

grep -v -E '^#(warning|pragma|define)' unchangeable.h >unchangeable.pc.h

Mein anderer Rat wäre, zu vermeiden die Greuel, die ist Pro*C, aber ich vermute, Sie sind mit es stecken...

Jons Ericsons Antwort richtig ist.

Es gibt noch einen zweiten Umstand, wo Sie brauchen, um verwenden Sie diesen trick.

Einige Versionen von Pro*c können nicht deal mit include-Dateien, die nicht über eine Datei-Erweiterung.

Die ORA_PROC Konstante ist eine praktikable Lösung für dieses problem.

/bin/make -f /css/hwmig/pcprg/proc9i32.mk PROCFLAGS="sqlcheck=SEMANTICS userid=ZSVA/india09" PCCSRC=bic I_SYM=include= pc1 proc sqlcheck=SEMANTICS userid=ZSVA/india09 iname=bic include=.include=/oracle/Ora92/precomp/public include=/oracle/Ora92/rdbms/public-include=/oracle/Ora92/rdbms/demo include=/oracle/Ora92/plsql/public include=/oracle/Ora92/network/public

Pro*C/C++:Release 9.2.0.6.0 - Production on Tue Dec 2 14:05:38 2008

Copyright (c) 1982, 2002, Oracle Corporation.Alle Rechte vorbehalten.

System Standard option Werte aus:/oracle/Ora92/precomp/admin/pcscfg.cfg

Syntax-Fehler in Zeile 135, Spalte 2 Datei /usr/include/standards.h:Fehler in Zeile 135, Spalte 2 in der Datei /usr/include/standards.h

Warnung -qdfp option ist erforderlich, verarbeiten DFP-code im Header.

.1 PCC-S-02014, Begegnete das symbol "Warnung", wenn erwartet der followin g:

eine numerische Konstante, newline, definieren, elif, else, endif, Fehler, wenn, ifdef, ifndef, gehören -, Linien -, pragma -, undef, eine sofortige Präprozessor-Befehl, ein C-token, Das symbol "newline"," wurde ersetzt durch "Warnung", um fortzufahren.

Syntax-Fehler in Zeile 30, Spalte 7, Datei-bic.pc:Fehler in Zeile 30, Spalte 7 im Datei-bic.pc DATEI fp;......1 PCC-S-02201, stießen auf das symbol ""Wann erwarten Sie eine der folgenden:

;, = ( [ Das symbol ";" wurde ersetzt durch "*" um fortzufahren.

Error at line 0, column 0 in Datei-bic.pc PCC-F-02102, Schwerwiegender Fehler, während Sie C-Preprozessor

Entfernen Sie unten zwei Zeilen aus /usr/include/standards.h

Warnung -qdfp option ist erforderlich, verarbeiten DFP-code im Header.

anderes

Ändern /usr/include/standards.h.
Löschen Sie die Zeile #warning The -qdfp option is required to process DFP code in headers. Der proc nicht unterstützt #warning,knapp #else #if etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top