كيفية جعل Pro*C يتعامل مع التوجيهات التحذيرية؟
-
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
إلخ.