تعيين علامات لكل ملف باستخدام automake
سؤال
هل هناك طريقة لتعيين العلامات على أساس كل ملف باستخدام التشغيل التلقائي؟
على وجه الخصوص، إذا كان لدي مشروع 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