كيفية جعل Pro*C يتعامل مع التوجيهات التحذيرية؟

StackOverflow https://stackoverflow.com/questions/14698

  •  08-06-2019
  •  | 
  •  

سؤال

عندما أحاول الترجمة المسبقة لملف *.pc الذي يحتوي على توجيه #warning، أتلقى الخطأ التالي:

PCC-S-02014، تمت مواجهة الرمز "تحذير" عند توقع أحد الإجراءات التالية:(بلا ​​بلا بلا).

هل يمكنني بطريقة ما إقناع Pro*C بتجاهل الشيء إذا كان لا يعرف ماذا يفعل به؟لا أستطيع إزالة #warning التوجيه لأنه يُستخدم في ملف رأس لا يمكنني تغييره ويجب تضمينه.

هل كانت مفيدة؟

المحلول

بحسب ال دليل مبرمج Pro*C/C++ (الفصل 5 "مواضيع متقدمة")، يتجاهل Pro*C بصمت عددًا من توجيهات المعالج المسبق بما في ذلك #error و #pragma، ولكن للأسف لا #warning.نظرًا لأن توجيهاتك التحذيرية مضمنة في ملف رأس، فقد تتمكن من استخدام الماكرو ORA_PROC:

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

لسبب ما، تظهر أخطاء Pro*C إذا حاولت إخفاء #تحذير مباشر بهذه الطريقة.

نصائح أخرى

خيار الاستخدام parse=none مع بروك

لا يمكنك.يعرف Pro*C فقط #if و#include.أفضل نصيحتي هي إجراء معالجة مسبقة للملف كجزء من عملية الإنشاء الخاصة بك لإزالة الأشياء التي لن يحبها Pro*C.شيء مثل

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

نصيحتي الأخرى هي تجنب الرجس الذي هو Pro*C، لكنني أعتقد أنك متمسك به ...

إجابة جونز إريكسون صحيحة.

هناك ظرف ثان قد تحتاج فيه إلى استخدام هذه الحيلة.

لا تستطيع بعض إصدارات Pro*c التعامل مع الملفات التي لا تحتوي على امتداد ملف.

يعد ثابت ORA_PROC أحد الحلول العملية لهذه المشكلة أيضًا.

/bin/make -f /css/hwmig/pcprg/proc9i32.mk procflags = "sqlcheck = disantics userId = cssd/indian09" pccsrc = bic i_sym = include = pc1 proc sqlchec .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

برو*C/C++:الإصدار 9.2.0.6.0 - الإنتاج يوم الثلاثاء 2 ديسمبر الساعة 14:05:38 2008

حقوق الطبع والنشر (ج) 1982، 2002، لشركة أوراكل.كل الحقوق محفوظة.

قيم خيارات النظام الافتراضية مأخوذة من:/Oracle/Ora92/precomp/admin/pcscfg.cfg

خطأ في بناء الجملة في السطر 135، العمود 2، الملف /usr/include/standards.h:خطأ في السطر 135، العمود 2 في الملف /usr/include/standards.h

تحذير: الخيار -qdfp مطلوب لمعالجة كود DFP في الرؤوس.

.1 PCC-S-02014 ، واجه رمز "تحذير" عند توقع أحد المتابعة G:

ثابت رقمي ، خط جديد ، تحديد ، illif ، elf ، endif ، خطأ ، إذا ، IFDEF ، IFNDEF ، تضمين ، السطر ، pragma ، undef ، أمر مسبق فوري ، رمز c ، رمز "newline" ، تم استبداله بـ "تحذير التحذير " لاستكمال.

خطأ في بناء الجملة في السطر 30، العمود 7، ملف bic.pc:خطأ في السطر 30 ، العمود 7 في ملف ملف bic.pc فب؛...... 1 PCC-S-02201 ، واجه الرمز "" عند توقع أحد الأمور التالية:

;, ، = ([الرمز "؛" تم استبداله بـ "*" للاستمرار.

خطأ في السطر 0 ، العمود 0 في ملف bic.pc pcc-f-02102 ، خطأ فادح أثناء القيام بالمعالجة المسبقة c

قم بإزالة السطرين أدناه من /usr/include/standards.h

تحذير: الخيار -qdfp مطلوب لمعالجة كود DFP في الرؤوس.

آخر

يُعدِّل /usr/include/standards.h.
احذف السطر #warning The -qdfp option is required to process DFP code in headers. بروك لا يدعم #warning،فقط #else #if إلخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top