كيفية تجاهل أخطاء متحذلق مترجم دول مجلس التعاون الخليجي في رؤوس مكتبة خارجية؟

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

سؤال

وأنا في الآونة الأخيرة وأضاف -pedantic و-pedantic-أخطاء في بلدي جعل دول مجلس التعاون الخليجي تجميع الخيارات للمساعدة في تنظيف قانون بلدي عبر منصة. كان كل شيء على ما يرام حتى يجدها الأخطاء في ملفات رأس شملت الخارجية. هل هناك طريقة لإيقاف هذا الخطأ التدقيق في رأس خارجي ملفات IE:

والتأكد من الحفاظ على الملفات الموجودة مثل هذا:

#include "myheader.h"

ووقف التحقق من وجود تشمل مثل هذه الملفات:

#include <externalheader.h>

وفيما يلي الأخطاء أنا على الحصول على:

g++ -Wall -Wextra -Wno-long-long -Wno-unused-parameter -pedantic --pedantic-errors
-O3 -D_FILE_OFFSET_BITS=64 -DMINGW -I"freetype/include" -I"jpeg" -I"lpng128" -I"zlib"
-I"mysql/include" -I"ffmpeg/libswscale" -I"ffmpeg/libavformat" -I"ffmpeg/libavcodec"
-I"ffmpeg/libavutil" -o omingwd/kguimovie.o -c kguimovie.cpp

In file included from ffmpeg/libavutil/avutil.h:41,
             from ffmpeg/libavcodec/avcodec.h:30,
             from kguimovie.cpp:44:
ffmpeg/libavutil/mathematics.h:32: error: comma at end of enumerator list
In file included from ffmpeg/libavcodec/avcodec.h:30,
             from kguimovie.cpp:44:
ffmpeg/libavutil/avutil.h:110: error: comma at end of enumerator list
In file included from kguimovie.cpp:44:
ffmpeg/libavcodec/avcodec.h:277: error: comma at end of enumerator list
ffmpeg/libavcodec/avcodec.h:303: error: comma at end of enumerator list
ffmpeg/libavcodec/avcodec.h:334: error: comma at end of enumerator list
ffmpeg/libavcodec/avcodec.h:345: error: comma at end of enumerator list
ffmpeg/libavcodec/avcodec.h:2249: warning: `ImgReSampleContext' is deprecated
(declared at ffmpeg/libavcodec/avcodec.h:2243)
ffmpeg/libavcodec/avcodec.h:2259: warning: `ImgReSampleContext' is deprecated
(declared at ffmpeg/libavcodec/avcodec.h:2243)
In file included from kguimovie.cpp:45:
ffmpeg/libavformat/avformat.h:262: error: comma at end of enumerator list
In file included from ffmpeg/libavformat/rtsp.h:26,
             from ffmpeg/libavformat/avformat.h:465,
             from kguimovie.cpp:45:
ffmpeg/libavformat/rtspcodes.h:38: error: comma at end of enumerator list
In file included from ffmpeg/libavformat/avformat.h:465,
             from kguimovie.cpp:45:
ffmpeg/libavformat/rtsp.h:32: error: comma at end of enumerator list
ffmpeg/libavformat/rtsp.h:69: error: comma at end of enumerator list
هل كانت مفيدة؟

المحلول

هل يمكن إصلاح الرؤوس ويقدم تصحيحا لفمبيج. التوافق مع -pedantic هو الهدف النبيل لذلك أنا متأكد من أنها سوف تنظر فيه، لا سيما إذا كان ينطوي على مجرد إزالة الفواصل زائدة وما الى ذلك.

نصائح أخرى

واستخدام خيار -Wsystem الرؤوس مع دول مجلس التعاون الخليجي وطباعة الرسائل المرتبطة مع رؤوس النظام، والتي قمعت بشكل طبيعي التحذير. ومع ذلك، كنت تبحث لدول مجلس التعاون الخليجي علاج أساسا هذه الملفات كما رؤوس النظام، لذلك قد حاول اجتياز "-isystem / البيرة / المحلية / فمبيج" (أو في أي مكان تثبيت هذه الحزمة) للحصول على دول مجلس التعاون الخليجي لتجاهل أخطاء من الملفات المدرجة في هذه الدلائل أيضا.

وأنا لا أعرف أي طريقة لمعرفة دول مجلس التعاون الخليجي لوقف انبعاث تلك التحذيرات. ولكن هل يمكن إزالة hackishly تحذيرات طرف ثالث مع شيء من هذا القبيل llvm-دول مجلس التعاون الخليجي (أو دول مجلس التعاون الخليجي فقط) -pedantic 2> & 1 | البقرى -v "/ البيرة /"

وفكرة واحدة أن يتبادر إلى ذهني (لا أعرف إذا كان هناك 'للخروج من مربع "المعلمة لهذا):

وإعداد السيناريو الذي سيستغرق الناتج المترجم الخاص بك، وإزالة كل الخطوط التي تحتوي على الرؤوس التي ليست في قائمة معينة (<م> الخاص بك رؤوس).

لا ينبغي أن يكون من الصعب القيام به على هذا النحو.

وأنت لا تستطيع أن تملي دول مجلس التعاون الخليجي لتكون متحذلق عن بعض الرؤوس وليس غيرها في هذا الوقت. كنت قد توحي بأنها الميزة، على الرغم من أنني أظن أنه سوف يقاوم كما مثالي الجميع سيكون متحذلق.

ما يمكنك القيام به هو تحديد رؤوس نفسك، وتوليد التصحيح، ومن ثم تطبيق ذلك التصحيح على الإصدارات الأحدث من رؤوس إذا الترقية المكتبة.

وإرسال التصحيح لFFMPEG فضلا على أمل أنها سوف تعتمد عليه، ولكن في كلتا الحالتين كنت تغطيتها حتى لو كانت لا تقبل ذلك.

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