هل هناك مفتاح لتعطيل الرسوم الثلاثية مع رنة?

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

  •  28-10-2019
  •  | 
  •  

سؤال

لقد حصلت على بعض (تراث) التعليمات البرمجية التي أنا بناء مع رنة لأول مرة.الرمز هو شيء من هذا القبيل:

sprintf(buf, "%s <%s ????>", p1, p2);

رنة يعطي التحذير التالي (خطأ مع -Werror):

test.c:6:33: error: trigraph converted to '}' character [-Werror,-Wtrigraphs]
    sprintf(buf, "%s <%s ????>", p1, p2);
                           ^

من الواضح أن ??> لا يقصد به أن يكون تريغراف ، لذلك أريد تعطيل تريغرافس تماما (المصدر لا تستخدم عمدا لهم في أي مكان).

لقد حاولت -no-trigraphs لكن هذا ليس خيارا حقا:

clang: warning: argument unused during compilation: '-no-trigraphs'

يمكنني إيقاف تحذير تريغرافس مع -Wno-trigraphs ولكن أنا لا أريد تحويل تريغراف أن تأخذ في الواقع مكان على الإطلاق.

ملاحظة:تم تمكين تريغرافس كأثر جانبي غير مقصود من استخدام -std=c89.

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

المحلول

حاول استخدام جنو * الوضع - " تريغرافس الافتراضي إلى أن تكون خارج في جنو * وسائط;يمكن تمكينها بواسطة-تريغرافس الخيار."(انظر http://clang.llvm.org/docs/UsersManual.html#c_modes للاختلافات الأخرى ومفتاح سطر الأوامر)

نصائح أخرى

لم أتمكن من رؤية طريقة واضحة لتعطيل تريغرافس (بدلا من تحذير تريغرافس).ربما تكون أسهل طريقة لإصلاح هذا الرمز هي تغييره إلى:

sprintf(buf, "%s <%s ????"">", p1, p2);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top