الانجليزيةالفرنسيةإسباني

تشغيل الخوادم | Ubuntu > | Fedora > |


OnWorks فافيكون

icheck - عبر الإنترنت في السحابة

قم بتشغيل icheck في مزود استضافة OnWorks المجاني عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر icheck الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


icheck - واجهة C مدقق ABI / API

موجز


انا اتحقق - تقديس [[--حدود FILE] ...] [OPTIONS] [GCC_OPTIONS] [-] ملفات

انا اتحقق --قارن [OPTIONS] old_file. ملف ملف جديد

وصف


أداة للتحقق الثابت من واجهات C لتغييرات API و ABI. كل التغييرات على الكتابة
يجب الكشف عن الإعلانات التي يمكن أن تسبب تغييرات ABI ، جنبًا إلى جنب مع معظم تغييرات API.

icheck مخصص للاستخدام مع المكتبات ، كطريقة لمنع انحراف ABI.

أوامر


قم بتقليل مجموعة ملفات المصدر إلى ملف واجهة أساسي باستخدام --canonify ، ثم قارن
اثنين من ملفات الواجهة مع --compare. إذا كانت هناك تغييرات في الواجهة بينهما ،
icheck سيصف التغييرات ويفشل.

- تقديس [[--حدود FILE] ...] [OPTIONS] [GCC_OPTIONS] [-] ملفات

Canonify ملفات التعليمات البرمجية المصدر (عادةً رؤوس. h) لمقارنتها لاحقًا
--قارن. عادة ما تستخدم مع -o خيار لحفظ الملخص في ملف.

--قارن [OPTIONS] old_file. ملف ملف جديد

يقرأ ملفي واجهة أساسي تم إنشاؤهما باستخدام - تقديس ويقارن
هيكل الكود المصدري للتغييرات في الواجهة العامة للتطبيق
(واجهة المطور أو API) والواجهة الثنائية للتطبيق (ABI) المستخدمة
الارتباط بالبرامج أو المكتبات الأخرى.

OPTIONS


انا اتحقق OPTIONS
-o, --انتاج FILE

إخراج الإخراج إلى FILE ، بدلاً من stdout.

--Debug N

تفريغ معلومات التصحيح.

--فقط شيء

فقط معالجة الشيء المعطى.

- تخطي من FILE

تخطي الأشياء غير الضرورية من FILE.

- تخطي من ري REGEXP

تخطي الأشياء غير الضرورية من الملفات المطابقة للتعبير العادي.

--فقط من FILE

فقط تأخذ من الأشياء FILE.

- فقط من إعادة REGEXP

لا تأخذ سوى الأشياء من الملفات المطابقة للتعبير العادي.

GCC_OPTIONS

تم تمرير GCC_OPTIONS إلى دول مجلس التعاون الخليجي -E

مساعدة OPTIONS
--مساعدة
عرض ملخص التعليمات لـ انا اتحقق.

أمثلة


تتم معالجة جميع ملفات المصدر مسبقًا باستخدام ملفات gcc ، لذلك يحتاج canonify إلى نفس المعلومات التي تتضمنها
كرمز مصدر - اتبع بناء الجملة من Makefile لتضمين خيارات -I إلى حزب الشعب الكمبودي (أو
دول مجلس التعاون الخليجي) حتى يمكن تحديد موقع جميع الرؤوس الضرورية. انا اتحقق ستجهض إذا لزم الأمر
لا يمكن العثور على الرؤوس. يجب أن يكون المصدر قابلًا للترجمة ؛ icheck لا يمكن معالجة الملفات التي
لا يمكن تجميعها مباشرة. إذا كان العنوان مفقودًا في عبارات #include ، أو غير ذلك
يتطلب استخدامه بطريقة خاصة ، فلا يمكن معالجته مباشرة باستخدام icheck.
بدلاً من ذلك ، اكتب ملف stub C الذي يضبط الأشياء بشكل مناسب ثم #includes the
رأس.

انا اتحقق - تقديس -o ~ / icheck / oldversion -I / usr / include / foo-2.0 /usr/src/bar/src/foobar.h

قم بإعداد ملخص نصي لملف foobar.h وجميع الملفات التي يتضمنها. الملخص
مكتوبة ل ~ / icheck / oldversion. كرر ل /usr/src/bar1/src/foobar.h - نفس الملف
في دليل المصدر الأحدث ، يتم الإخراج إلى ملف جديد ، على سبيل المثال ~ / icheck / الإصدار الجديد.

انا اتحقق --قارن -o ~ / icheck / results.txt ~ / icheck / oldversion ~ / icheck / الإصدار الجديد

يكتب تقرير المقارنة بين الملفين الموجزين. يشير التقرير إلى كل
تم العثور على التغييرات في ABI و / أو API أثناء المقارنة.

انا اتحقق - تقديس -o ديبيان / icheck.canonical -Idebian / foo-dev / usr / include ديبيان / فو-
dev / usr / include / foobar.h

انا اتحقق --قارن ديبيان / icheck.manifest ديبيان / icheck.canonical

هذين البيانين ، المدرجة في ديبيان / القواعد ملف ، سيؤدي إلى إنشاء الحزمة إلى
فشل إذا تغيرت API أو ABI بطرق غير متوقعة ، حيث icheck.manifest هو نسخة من
الواجهة المتوقعة المضمنة في الحزمة.

لاحظ أن الوسيطات لـ - compare هي نفسها ملفات C صالحة ومعالجتها مسبقًا ،
لذلك يمكن أن يحتوي icheck.manifest على منطق المعالج الأولي للغة C. يمكن أن يكون هذا مفيدًا عندما تكون الحزمة
تصدر واجهات مختلفة اعتمادًا على بنية المضيف. في هذه الحالة ، لا يمكنك ذلك
استبدله بنسخة جديدة من icheck.canonical عندما تتغير الواجهة وتحتاج إلى ذلك
تحديث البيان. بدلاً من تحديث البيان بالكامل يدويًا ، ضع اليد-
وصف واجهة مكتوبة في ملف واحد (icheck.static- بيان) ثم استخدم:

انا اتحقق - تقديس --حدود ديبيان / icheck.static- بيان -o ديبيان / icheck.dynamic-
واضح

أخيرًا ، قم بإنشاء icheck.manifest يحتوي على:
# تضمين "icheck.static-manifest"
# تضمين "icheck.dynamic-manifest"
يسمح لك هذا بتحديث بعض أجزاء البيان يدويًا ، بينما لا يزال تلقائيًا
توليد الباقي.

OUTPUT


يقوم icheck بإنشاء وصف مطول لكل تغيير محتمل في API أو ABI ، بناءً على النوع
معلومة. إنه لا يحقق في رمز البرنامج الفعلي ، ولذا فمن الممكن أن يكون
بعض أنواع التغييرات التي يكتشفها ليست تغييرات فعلية في ABI أو API. ومع ذلك ، هذا عادة
يحدث فقط عندما يتم كتابة رمز البرنامج بشكل صريح له. إذا كنت في شك ، افترض أنه
تغيرت.

في النهاية ، يوفر icheck ملخصًا للتغييرات. لاحظ أن الاتجاهات هنا
اعتمادًا على ترتيب الوسيطات من أجل --compare: يجب أن تأتي الواجهة الأقدم أولاً ،
أو ستكون الاتجاهات في الاتجاه المعاكس. معاني المصطلحات المختلفة هي
يتبع:

ABI يتوافق ABI إذا تم تجميع الأشياء مقابل إصدار واحد من
ستعمل الواجهة عند تشغيلها باستخدام الإصدار الآخر.

API تتوافق API إذا تم تجميع الأشياء مقابل إصدار واحد من
يمكن تجميع واجهة مقابل الآخر.

متوافق مع الأمام
الواجهة متوافقة مع إعادة التوجيه إذا تم تجميع الأشياء مقابل القديم
سيعمل الإصدار مع الإصدار الجديد. هذه هي الميزة الهامة ل سونام
التغييرات.

متوافق مع الجيل السابق
تكون الواجهة متوافقة مع الإصدارات السابقة إذا تم تجميع الأشياء مقابل الجديد
الإصدار سوف يعمل مع القديم. هذه هي الميزة الهامة ل شليبس
الإصدار التغييرات. إذا كنت لا تبني حزم دبيان ، فمن المحتمل أنك لا تفعل ذلك
يهتم بالتغييرات التي لا تتوافق مع الإصدارات السابقة.

استخدم icheck عبر الإنترنت باستخدام خدمات onworks.net


Ad


Ad