سؤال

هل هناك طريقة لتعيين العلامات على أساس كل ملف باستخدام التشغيل التلقائي؟
على وجه الخصوص، إذا كان لدي مشروع c++ وأريد أن أقوم بتجميع جميع الملفات باستخدام -WA جميع الملفات باستثناء ملف واحد أريد تعطيل تحذير معين له، فماذا يمكنني أن أفعل؟

لقد حاولت شيئًا مثل:

CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value

لكنها لم تنجح.

تم التعديل:تمت إزالة الإشارة إلى دليل صناعة السيارات، والذي كان مضللاً بالفعل (بفضل دوغلاس ليدر).

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

المحلول

يدعم Automake فقط العلامات لكل هدف، بينما تريد العلامات لكل كائن.إحدى الطرق هي إنشاء مكتبة صغيرة تحتوي على الكائن الخاص بك:

CXXFLAGS = -Wall ...
bin_PROGRAMS = test
test_SOURCES = main.cpp
test_LDADD = libutility.a
noinst_LIBRARIES = libutility.a
libutility_a_SOURCES = utility.cpp
libutility_a_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value

نصائح أخرى

لا يمكنك فعل هذا مع automake...لكن يقدر على مع make =) أضف السطر التالي إلى ملفك Makefile.am:

utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value

يرى جنو جعل الوثائق:القيم المتغيرة الخاصة بالهدف للتفاصيل.

لقد شعرت بالارتباك - يشير هذا القسم إلى خيارات التشغيل التلقائي.

إنها طريقة لتعيين خيارات سطر أوامر التشغيل التلقائي:

-W الفئة -الحوامل = تحذيرات إخراج الفئة تقع في الفئة.يمكن أن تكون الفئة واحدة من:

gnu
    warnings related to the GNU Coding Standards (see Top).
obsolete
    obsolete features or constructions
override
    user redefinitions of Automake rules or variables
portability
    portability issues (e.g., use of make features that are known to be not portable)
syntax
    weird syntax, unused variables, typos
unsupported
    unsupported or incomplete features
all
    all the warnings
none
    turn off all the warnings
error
    treat warnings as errors 

يمكن إيقاف تشغيل الفئة عن طريق إضافة اسمها بـ "no-".على سبيل المثال ، سوف يخفي -wno -syntax التحذيرات حول المتغيرات غير المستخدمة.

الفئات التي يتم إخراجها افتراضيًا هي "بناء الجملة" و"غير مدعوم".بالإضافة إلى ذلك ، يتم تمكين "GNU" و "قابلية النقل" في -Gnu و -Gnits Strickness.

يمكن أن تحتوي التحذيرات المتغيرة للبيئة على قائمة مفصولة بفواصل من الفئات لتمكينها.سيتم أخذها في الاعتبار قبل مفاتيح سطر الأوامر ، وبهذه الطريقة ، ستتجاهل Wnone أيضًا أي فئة تحذير تمكن من التحذيرات.يستخدم هذا المتغير أيضًا من قبل أدوات أخرى مثل AutoconF ؛يتم تجاهل فئات غير معروفة لهذا السبب.

يشير كل ملف مدرج في القسم 17 إلى الملف لكل Makefile وليس الملف المصدر.

لست على علم بأي إعداد إشارة ملف لكل مصدر، ولكن يمكنك تعيين الخيار لكل نتيجة ثنائية باستخدام:

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