3

当我尝试预编译包含 #warning 指令的 *.pc 文件时,我收到以下错误:

PCC-S-02014,在预期以下情况之一时遇到符号“警告”:(bla bla bla)。

如果 Pro*C 不知道如何处理它,我能以某种方式说服 Pro*C 忽略它吗?我无法删除该#warning指令,因为它用于我无法更改且必须包含的头文件中。

4

7 回答 7

5

根据Pro*C/C++ 程序员指南(第 5 章“高级主题”),Pro*C 默默地忽略了一些预处理器指令,包括#error 和#pragma,但遗憾的是没有#warning。由于您的警告指令包含在头文件中,因此您可以使用 ORA_PROC 宏:

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

但是,由于某种原因,如果您尝试以这种方式隐藏直接的#warning,Pro*C 就会出错。

于 2008-08-22T21:44:00.983 回答
2

使用parse=noneproc选项

于 2010-10-12T03:25:49.750 回答
0

你不能。Pro*C 只知道#if 和#include。我最好的建议是将文件预处理作为构建过程的一部分,以删除 Pro*C 不喜欢的东西。就像是

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

我的另一个建议是避免 Pro*C 的可憎之处,但我猜你会坚持下去......

于 2008-08-18T17:54:54.463 回答
0

Jons Ericsons 的回答是正确的。

在第二种情况下,您可能需要使用该技巧。

某些版本的 Pro*c 无法处理没有文件扩展名的包含文件。

ORA_PROC 常量也是该问题的一种可行解决方案。

于 2008-09-16T19:53:26.550 回答
0

/bin/make -f /css/hwmig/pcprg/proc9i32.mk PROCFLAGS="sqlcheck=SEMANTICS userid=cssd/india09" PCCSRC=bic I_SYM=include= pc1 proc sqlcheck=SEMANTICS userid=cssd/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++:发布 9.2.0.6.0 - 2008 年 12 月 2 日星期二 14:05:38 生产

版权所有 (c) 1982, 2002,甲骨文公司。版权所有。

系统默认选项值取自:/oracle/Ora92/precomp/admin/pcscfg.cfg

第 135 行第 2 列的语法错误,文件 /usr/include/standards.h:第 135 行错误,文件 /usr/include/standards.h 中的第 2 列

警告 -qdfp 选项是处理标头中的 DFP 代码所必需的。

.1 PCC-S-02014,在预期以下情况之一时遇到“警告”符号:

数字常量、换行符、define、elif、else、endif、error、if、ifdef、ifndef、include、line、pragma、undef、立即预处理命令、C 标记、符号“换行符”被替换为“警告” “ 接着说。

文件 bic.pc 第 30 行第 7 列的语法错误:文件 bic.pc FILE fp 中第 30 行第 7 列的错误;......1 PCC-S-02201,在预期以下情况之一时遇到符号“”:

; , = ( [ 符号 ";" 被替换为 "*" 以继续。

文件 bic.pc PCC-F-02102 中第 0 行第 0 列出错,执行 C 预处理时出现致命错误

于 2008-12-03T06:59:30.440 回答
-1

从 /usr/include/standards.h 中删除以下两行

警告 -qdfp 选项是处理标头中的 DFP 代码所必需的。

别的

于 2009-06-26T21:47:16.443 回答
-2

修改/usr/include/standards.h.
删除行#warning The -qdfp option is required to process DFP code in headers. proc 不支持#warning,just#else #if

于 2011-01-19T11:38:20.497 回答