این دستور cpp-6 است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
cpp - پیش پردازنده C
خلاصه
cpp [-Dدرشت دستور[=تعریف کنید]...] [-Uدرشت دستور]
[-Iدیر...] [-نقل دادندیر...]
[-Wهشدار دادن...]
[-M|-مامان] [-MG] [-MF نام فایل]
[-نماینده مجلس] [-MQ هدف...]
[-MT هدف...]
[-P] [-fno-working-directory]
[-x زبان] [-std=استاندارد]
پرونده مجموعه
فقط مفیدترین گزینه ها در اینجا فهرست شده اند. برای بقیه موارد زیر را ببینید.
شرح
پیش پردازنده C که اغلب به عنوان شناخته می شود cppاست، درشت دستور پردازنده که به طور خودکار توسط
کامپایلر C برای تبدیل برنامه شما قبل از کامپایل. به آن ماکرو می گویند
پردازنده زیرا به شما امکان تعریف می دهد ماکرو، که مخفف های کوتاه مدت بیشتری هستند
سازه ها
پیش پردازنده C فقط با کد منبع C، C++ و Objective-C در نظر گرفته شده است.
در گذشته، به عنوان یک پردازشگر متن عمومی مورد سوء استفاده قرار گرفته است. در ورودی که خفه می شود
از قواعد واژگانی C پیروی نمی کند. به عنوان مثال، آپاستروف ها به عنوان تعبیر می شوند
شروع ثابت های کاراکتر، و باعث خطا می شود. همچنین، شما نمی توانید به آن اعتماد کنید
حفظ ویژگی های ورودی که برای زبان های خانواده C مهم نیست.
اگر یک Makefile از قبل پردازش شده باشد، تمام تب های سخت حذف خواهند شد و Makefile حذف خواهند شد
کار نمیکند.
با این اوصاف، اغلب میتوانید با استفاده از cpp در مواردی که C. دیگری نیستند، کنار بیایید
زبان های برنامه نویسی Algol-ish اغلب ایمن هستند (پاسکال، آدا و غیره). اسمبلی نیز با
احتیاط سنتی-cpp حالت فضای سفید بیشتری را حفظ می کند و در غیر این صورت بیشتر است
سهل گیر با نوشتن نظرات به سبک C یا C++ می توان از بسیاری از مشکلات جلوگیری کرد
به جای نظرات زبان مادری و ساده نگه داشتن ماکروها.
در صورت امکان، باید از یک پیش پردازشگر متناسب با زبانی که می نویسید استفاده کنید
نسخه های مدرن اسمبلر گنو دارای امکانات ماکرو هستند. بالاترین سطح
زبان های برنامه نویسی مکانیسم کامپایل و گنجاندن شرطی خود را دارند. اگر
همه چیز ناموفق است، یک پردازشگر متن عمومی واقعی مانند GNU M4 را امتحان کنید.
پیش پردازنده های C در برخی جزئیات متفاوت هستند. این راهنما پیش پردازنده گنو C را مورد بحث قرار می دهد
مجموعه کوچکی از ویژگی های ISO استاندارد C را ارائه می دهد. در حالت پیش فرض آن، GNU
پیش پردازنده C چند کار مورد نیاز استاندارد را انجام نمی دهد. اینها ویژگی ها هستند
که به ندرت استفاده می شوند و ممکن است تغییرات شگفت انگیزی در معنای الف ایجاد کنند
برنامه ای که از آنها انتظار ندارد. برای دریافت استاندارد ISO سختگیرانه C، باید از آن استفاده کنید
-std=c90, -std=c99 or -std=c11 گزینه ها، بسته به نسخه استاندارد شما
خواستن برای دریافت تمام تشخیص های اجباری، باید از آن نیز استفاده کنید -پدانتیک.
این راهنما رفتار پیش پردازنده ISO را شرح می دهد. برای به حداقل رساندن بلاعوض
تفاوت ها، که در آن رفتار پیش پردازنده ISO با سنتی در تضاد نیست
معناشناسی، پیش پردازشگر سنتی باید به همان شیوه رفتار کند. مختلف
تفاوت هایی که وجود دارد به تفصیل در بخش آورده شده است سنتی حالت.
برای وضوح، مگر اینکه به طور دیگری ذکر شده باشد، ارجاع به CPP در این راهنما به GNU CPP مراجعه کنید.
OPTIONS
پیش پردازنده C دو نام فایل را به عنوان آرگومان انتظار دارد، پرونده و مجموعه.
پیش پردازنده می خواند پرونده همراه با هر فایل دیگری که با آن مشخص می کند #include. همه
خروجی تولید شده توسط فایل های ورودی ترکیبی در آن نوشته می شود مجموعه.
در هر پرونده or مجموعه شاید -، که به عنوان پرونده به معنی خواندن از ورودی استاندارد و
as مجموعه به معنای نوشتن در خروجی استاندارد است. همچنین، اگر هر یک از فایل ها حذف شود، به این معنی است
همان طور که اگر - برای آن فایل مشخص شده بود.
مگر اینکه غیر از این ذکر شده باشد، یا گزینه به پایان برسد =، همه گزینه هایی که آرگومان می گیرند ممکن است
باید آن آرگومان بلافاصله بعد از گزینه یا با فاصله بین ظاهر شود
گزینه و آرگومان: -ایفو و -I فو همین اثر را دارند.
بسیاری از گزینه ها دارای نام های چند حرفی هستند. بنابراین گزینه های تک حرفی متعدد ممکن است نه be
گروه بندی شده: -dM بسیار متفاوت است با -d -M.
-D نام
از پیش تعریف کنید نام به عنوان یک کلان، با تعریف 1.
-D نام=تعریف
محتویات تعریف نشانه گذاری می شوند و طوری پردازش می شوند که گویی در طی آن ظاهر شده اند
ترجمه فاز سه در الف #تعريف كردن بخشنامه به طور خاص، تعریف خواهد بود
توسط کاراکترهای جدید جاسازی شده کوتاه شده است.
اگر پیش پردازنده را از یک برنامه پوسته یا پوسته مانند فراخوانی می کنید، ممکن است نیاز داشته باشید
برای استفاده از نحو نقل قول پوسته برای محافظت از کاراکترهایی مانند فضاهایی که دارای a
معنی در نحو پوسته.
اگر می خواهید یک ماکرو تابع مانند در خط فرمان تعریف کنید، آرگومان آن را بنویسید
لیست با پرانتزهای اطراف قبل از علامت مساوی (در صورت وجود). پرانتز هستند
برای اکثر پوسته ها معنی دار است، بنابراین باید گزینه را نقل قول کنید. با sh و csh,
-دنام(ارگ...)=تعریف' کار می کند.
-D و -U گزینه ها به ترتیبی که در خط فرمان داده شده اند پردازش می شوند. همه
-ایماکرو پرونده و -عبارتند از پرونده پس از همه، گزینه ها پردازش می شوند -D و -U گزینه.
-U نام
هر گونه تعریف قبلی را لغو کنید نام، یا ساخته شده یا با یک -D گزینه.
-دف
ماکروهای خاص سیستم یا GCC را از پیش تعریف نکنید. استاندارد از پیش تعریف شده
ماکروها تعریف شده باقی می مانند.
-I دیر
دایرکتوری را اضافه کنید دیر به لیست دایرکتوری هایی که باید برای فایل های سرصفحه جستجو شوند.
فهرست راهنماهای نامگذاری شده توسط -I قبل از اینکه سیستم استاندارد شامل دایرکتوری ها باشد جستجو می شوند.
اگر دایرکتوری دیر یک سیستم استاندارد شامل دایرکتوری است، گزینه نادیده گرفته می شود
اطمینان حاصل کنید که ترتیب جستجوی پیشفرض برای فهرستهای سیستم و رفتار ویژه
هدرهای سیستم شکست نمی خورد. اگر دیر با "="" شروع می شود، سپس "=" خواهد بود
با پیشوند sysroot جایگزین شده است. دیدن --sysroot و -isysroot.
-o پرونده
خروجی را بنویسید پرونده. این همان مشخص کردن است پرونده به عنوان دومین غیر گزینه
استدلال به cpp. gcc تفسیر متفاوتی از آرگومان غیر گزینه دوم دارد،
پس باید استفاده کنید -o برای تعیین فایل خروجی
-دیو
همه اخطارهای اختیاری را که برای کد معمولی مطلوب هستند روشن می کند. در حال حاضر این
is -کامنت کنید, Wtrigraphs, -Wmultichar و یک هشدار در مورد ارتقاء عدد صحیح که باعث a
تغییر علامت در عبارات "#if". توجه داشته باشید که بسیاری از هشدارهای پیش پردازنده
به طور پیش فرض روشن هستند و هیچ گزینه ای برای کنترل آنها ندارند.
-کامنت کنید
-نظرات
هر زمان که یک دنباله شروع نظر اخطار کنید /* ظاهر می شود در a /* نظر دهید، یا هر زمان که الف
بک اسلش-newline در یک ظاهر می شود // اظهار نظر. (هر دو شکل اثر یکسانی دارند.)
Wtrigraphs
اکثر سه نمودارها در نظرات نمی توانند بر معنای برنامه تأثیر بگذارند. با این حال، الف
سه گراف که یک خط جدید فرار تشکیل می دهد (??/ در انتهای یک خط) می تواند، توسط
تغییر نقطه شروع یا پایان نظر بنابراین، فقط سه نمودارهایی که تشکیل می شوند
خطوط جدید فراری هشدارهایی را در داخل یک نظر ایجاد می کنند.
این گزینه توسط -دیو. اگر -دیو داده نشده است، این گزینه همچنان فعال است
مگر اینکه سه نمودارها فعال باشند. برای دریافت تبدیل تریگراف بدون هشدار، اما دریافت کنید
دیگر -دیو هشدارها، استفاده کنید سه نمودارها -دیو Wno-trigraphs.
-غیر سنتی
در مورد ساختارهای خاصی که در سنتی و ISO C رفتار متفاوتی دارند هشدار دهید
در مورد ساختارهای ISO C که معادل C سنتی ندارند و مشکل ساز هستند هشدار دهید
سازه هایی که باید از آنها اجتناب کرد.
-وندف
هر زمان که یک شناسه که ماکرو نیست در یک مواجه شد هشدار دهید #اگر بخشنامه،
خارج از مشخص. چنین شناسه هایی با صفر جایگزین می شوند.
Wunused-macros
در مورد ماکروهای تعریف شده در فایل اصلی که استفاده نشده اند هشدار دهید. یک ماکرو است استفاده اگر هست
حداقل یک بار گسترش یافته یا برای وجود آزمایش شده است. پیش پردازنده همچنین هشدار می دهد اگر
ماکرو در زمان تعریف مجدد یا تعریف نشده استفاده نشده است.
ماکروهای داخلی، ماکروهای تعریف شده در خط فرمان و ماکروهای تعریف شده در شامل
فایل ها در مورد آنها هشدار داده نمی شود.
توجه داشته باشید: اگر واقعاً از یک ماکرو استفاده می شود، اما فقط در بلوک های شرطی نادیده گرفته شده استفاده می شود، پس
CPP آن را به عنوان استفاده نشده گزارش خواهد کرد. برای جلوگیری از هشدار در چنین مواردی، ممکن است بهبود پیدا کنید
محدوده تعریف ماکرو، برای مثال، با انتقال آن به اولین مورد پرش
مسدود کردن. از طرف دیگر، می توانید یک استفاده ساختگی با چیزی شبیه به:
#اگر_کلان_علت_هشدار تعریف شده است
# اندیف
برچسب های Wendif
هر زمان که # دیگر و یا # اندیف با متن دنبال می شوند. این معمولا در
کد فرم
#اگر FOO
...
#دیگر FOO
...
#NDIF FOO
دوم و سوم "FOO" باید در نظرات باشد، اما اغلب در برنامه های قدیمی تر نیستند.
این هشدار به طور پیش فرض روشن است.
-خطا
همه هشدارها را به خطاهای سخت تبدیل کنید. کد منبعی که باعث ایجاد هشدار می شود خواهد بود
رد شد
Wsystem-headers
اخطارهایی را برای کد در هدرهای سیستم صادر کنید. اینها معمولاً برای یافتن مفید نیستند
اشکالات در کد شما، بنابراین سرکوب شده است. اگر شما مسئول سیستم هستید
کتابخانه، ممکن است بخواهید آنها را ببینید.
-w تمام هشدارها، از جمله هشدارهایی که GNU CPP به طور پیش فرض صادر می کند، سرکوب کنید.
-پدانتیک
همه تشخیص های اجباری مندرج در استاندارد C را صادر کنید. برخی از آنها باقی مانده است
به طور پیشفرض خارج میشوند، زیرا اغلب روی کدهای بیضرر فعال میشوند.
-اشتباهات
همه تشخیص های اجباری را صادر کنید و همه تشخیص های اجباری را به خطا تبدیل کنید.
این شامل تشخیص های اجباری است که GCC بدون آن صادر می کند -پدانتیک اما به عنوان رفتار می کند
هشدارها
-M به جای خروجی گرفتن نتیجه پیش پردازش، یک قانون مناسب برای خروجی ارائه دهید ساخت
شرح وابستگی های فایل منبع اصلی. پیش پردازنده یک خروجی می دهد
ساخت قانون حاوی نام فایل شی برای آن فایل منبع، یک دونقطه و نام ها
از همه فایلهای موجود، از جمله فایلهایی که از آنها میآیند -عبارتند از or -ایماکرو فرمان -
گزینه های خط
مگر اینکه به صراحت مشخص شده باشد (با -MT or -MQ)، نام فایل شی از عبارت تشکیل شده است
نام فایل مبدأ با هر پسوندی جایگزین پسوند فایل شی و با هر
قطعات دایرکتوری اصلی حذف شدند. اگر تعداد زیادی فایل گنجانده شده باشد، قانون این است
تقسیم به چند خط با استفاده از \-خط جدید. قانون هیچ فرمانی ندارد.
این گزینه خروجی اشکال زدایی پیش پردازنده را سرکوب نمی کند، مانند -dM. برای جلوگیری
مخلوط کردن چنین خروجی اشکال زدایی با قوانین وابستگی، باید به صراحت آن را مشخص کنید
فایل خروجی وابستگی با -MF، یا از یک متغیر محیطی مانند استفاده کنید
DEPENDENCIES_OUTPUT. خروجی اشکال زدایی همچنان به جریان خروجی معمولی ارسال می شود
طبیعی است.
عبور -M به راننده اشاره می کند -E، و هشدارها را به طور ضمنی سرکوب می کند -w.
-مامان پسندیدن -M اما به فایلهای هدری که در فهرستهای هدر سیستم یافت میشوند اشاره نکنید،
و نه فایلهای سرصفحهای که بهطور مستقیم یا غیرمستقیم از چنین هدری گنجانده شدهاند.
این به این معنی است که انتخاب براکت های زاویه یا دو نقل قول در یک #include
دستورالعمل به خودی خود تعیین نمی کند که آیا آن هدر در ظاهر می شود یا خیر -مامان
خروجی وابستگی این یک تغییر جزئی در معناشناسی از GCC نسخه 3.0 و
قبلا
-MF پرونده
هنگامی که با استفاده می شود -M or -مامان، فایلی را برای نوشتن وابستگی ها مشخص می کند. اگر نه -MF
سوئیچ داده می شود که پیش پردازنده قوانین را به همان جایی که می فرستاد می فرستد
خروجی از پیش پردازش شده
هنگامی که با گزینه های درایور استفاده می شود -MD or -MMD, -MF وابستگی پیش فرض را لغو می کند
فایل خروجی.
-MG در ارتباط با گزینه ای مانند -M درخواست تولید وابستگی، -MG فرض می کند
فایلهای هدر از دست رفته فایلهایی تولید میشوند و بدون آنها را به لیست وابستگی اضافه میکنند
بالا بردن یک خطا نام فایل وابستگی مستقیماً از "#include" گرفته شده است.
دستورالعمل بدون پیش بینی هیچ مسیری. -MG همچنین خروجی از پیش پردازش شده را سرکوب می کند
فایل هدر از دست رفته این را بی فایده می کند.
این ویژگی در به روز رسانی خودکار فایل های make-files استفاده می شود.
-نماینده مجلس این گزینه به CPP دستور می دهد تا برای هر وابستگی به غیر از آن یک هدف ساختگی اضافه کند
فایل اصلی، که باعث می شود هر کدام به هیچ چیز وابسته نشوند. این قوانین ساختگی روی خطاها کار می کنند
ساخت می دهد اگر شما فایل های هدر را بدون به روز رسانی حذف کنید makefile مطابقت دادن
این خروجی معمولی است:
test.o: test.c test.h
test.h:
-MT هدف
هدف قانون صادر شده توسط تولید وابستگی را تغییر دهید. به طور پیش فرض CPP می گیرد
نام فایل ورودی اصلی، هر جزء دایرکتوری و هر پسوند فایل را حذف می کند
مانند .c، و پسوند شی معمولی پلتفرم را اضافه می کند. نتیجه هدف است.
An -MT گزینه هدف را دقیقاً همان رشته ای که شما مشخص کرده اید تنظیم می کند. اگر بخواهید
چندین هدف، می توانید آنها را به عنوان یک آرگومان واحد مشخص کنید -MT، یا از چندگانه استفاده کنید
-MT گزینه.
به عنوان مثال، -MT '$(objpfx)foo.o' ممکن است بدهد
$ (objpfx) foo.o: foo.c
-MQ هدف
مثل -MT، اما هر شخصیتی را که برای ساختن خاص است نقل قول می کند.
-MQ '$(objpfx)foo.o' می دهد
$ $ (objpfx) foo.o: foo.c
هدف پیش فرض به طور خودکار نقل قول می شود، گویی با آن داده شده است -MQ.
-MD -MD برابر است با -M -MF پرونده، غیر از آن -E ضمنی نیست. راننده
تعیین می کند پرونده بر اساس اینکه آیا یک -o گزینه داده شده است. اگر اینطور باشد، درایور از آن استفاده می کند
آرگومان اما با پسوند .d، در غیر این صورت نام فایل ورودی را می گیرد،
هر جزء و پسوند دایرکتوری را حذف می کند و a را اعمال می کند .d پسوند.
If -MD همراه با استفاده می شود -E، هرکسی -o سوئیچ برای مشخص کردن
فایل خروجی وابستگی، اما اگر بدون استفاده شود -E، هر یک -o برای مشخص کردن a درک می شود
فایل شی هدف
پس از -E ضمنی نیست، -MD می توان از آن برای تولید یک فایل خروجی وابستگی به صورت a استفاده کرد
عوارض جانبی فرآیند کامپایل
-MMD
پسندیدن -MD به جز ذکر فقط فایل های هدر کاربر، نه فایل های هدر سیستم.
-x c
-x c ++
-x هدف-ج
-x اسمبلر-با-cpp
زبان مبدأ را مشخص کنید: C، C++، Objective-C، یا اسمبلی. این ربطی نداره
با انطباق با استانداردها یا الحاقات؛ صرفاً دستور پایه را انتخاب می کند
انتظار. اگر هیچ یک از این گزینه ها را ندهید، cpp زبان را از روی استنتاج می کند
پسوند فایل منبع: .c, . رونوشت, .m، یا .S. برخی از پسوندهای رایج دیگر برای
C++ و اسمبلی نیز شناخته شده است. اگر cpp پسوند را نشناسد، آن را
با فایل به صورت C رفتار می کند. این عمومی ترین حالت است.
توجه داشته باشید: نسخههای قبلی cpp a -زمانی گزینه ای که هر دو را انتخاب کرد
زبان و سطح انطباق استانداردها این گزینه حذف شده است، زیرا
با -l گزینه.
-std=استاندارد
-ansi
استانداردی را که کد باید با آن مطابقت داشته باشد را مشخص کنید. در حال حاضر CPP در مورد C می داند
و استانداردهای C++; سایرین ممکن است در آینده اضافه شوند.
استاندارد ممکن است یکی از:
"c90"
"c89"
"iso9899:1990"
استاندارد ISO C از سال 1990. c90 مخفف مرسوم این نسخه است
استاندارد.
La -ansi گزینه معادل است -std=c90.
"iso9899:199409"
استاندارد C 1990 که در سال 1994 اصلاح شد.
"iso9899:1999"
"c99"
"iso9899:199x"
"c9x"
استاندارد بازنگری شده ISO C، منتشر شده در دسامبر 1999. قبل از انتشار، این
با نام C9X شناخته می شد.
"iso9899:2011"
"c11"
"c1x"
استاندارد بازنگری شده ISO C، منتشر شده در دسامبر 2011. قبل از انتشار، این
با نام C1X شناخته می شد.
"gnu90"
"gnu89"
استاندارد C 1990 به همراه پسوندهای گنو. این پیش فرض است.
"gnu99"
"gnu9x"
استاندارد C 1999 به همراه پسوندهای گنو.
"gnu11"
"gnu1x"
استاندارد C 2011 به همراه پسوندهای گنو.
"c++98"
استاندارد ISO C++ 1998 به همراه اصلاحات.
"gnu++98"
همان -std = C ++ 98 به علاوه پسوندهای گنو این کد پیش فرض برای C++ است.
-من- مسیر شامل را تقسیم کنید. هر دایرکتوری مشخص شده با -I گزینه های قبل -من- هستند
فقط برای سرصفحه های درخواست شده با "#include" جستجو شدفایل""; آنها جستجو نمی شوند
"#عبارتند ازفایل>". اگر دایرکتوری های اضافی با -I گزینه های بعد از
-من-، آن دایرکتوری ها برای همه جستجو می شوند #include دستورالعمل.
علاوه بر این، -من- مانع استفاده از دایرکتوری دایرکتوری فایل فعلی به عنوان
اولین فهرست جستجو برای "#include"فایل"".
این گزینه منسوخ شده است.
-nostdinc
در فهرست های استاندارد سیستم برای فایل های هدر جستجو نکنید. فقط دایرکتوری ها
شما مشخص کرده اید با -I گزینه ها (و دایرکتوری فایل فعلی، اگر
مناسب) جستجو می شوند.
-nostdinc++
فایل های هدر را در دایرکتوری های استاندارد خاص C++ جستجو نکنید، اما همچنان انجام دهید
سایر دایرکتوری های استاندارد را جستجو کنید. (این گزینه هنگام ساخت ++C استفاده می شود
کتابخانه.)
-عبارتند از پرونده
روند پرونده مثل اینکه "#include "file"" به عنوان اولین خط منبع اصلی ظاهر شد
فایل. با این حال، اولین دایرکتوری جستجو شد پرونده پیش پردازنده کار می کند
فهرست راهنما در عوض of دایرکتوری حاوی فایل منبع اصلی اگر پیدا نشد
در آنجا، در بقیه زنجیره جستجوی "#include "..." به عنوان جستجو می شود
طبیعی است.
اگر چندتایی باشد -عبارتند از گزینه های داده شده است، فایل ها به ترتیب آنها گنجانده شده است
در خط فرمان ظاهر شود.
-ایماکرو پرونده
دقیقا شبیه -عبارتند از، با این تفاوت که هر خروجی با اسکن تولید می شود پرونده پرتاب می شود
دور. ماکروهایی که تعریف می کند همچنان تعریف شده باقی می مانند. این به شما امکان می دهد تمام ماکروها را بدست آورید
از یک هدر بدون پردازش اعلان های آن.
تمام فایل های مشخص شده توسط -ایماکرو قبل از تمام فایل های مشخص شده توسط پردازش می شوند -عبارتند از.
-idirafter دیر
جستجو دیر برای فایل های هدر، اما این کار را انجام دهید بعد از همه دایرکتوری های مشخص شده با -I و
فهرست های استاندارد سیستم تمام شده اند. دیر به عنوان یک سیستم شامل
فهرست راهنما. اگر دیر با "="" شروع می شود، سپس "=" با sysroot جایگزین می شود
پیشوند؛ دیدن --sysroot و -isysroot.
-پیوند پیشوند
مشخص کردن پیشوند به عنوان پیشوند بعدی -ithprefix گزینه ها. اگر پیشوند
نشان دهنده یک دایرکتوری است، شما باید فینال را وارد کنید /.
-ithprefix دیر
-IwwithPrefixBefore دیر
ضمیمه کردن دیر به پیشوند مشخص شده قبلا با -پیوند، و حاصل را اضافه کنید
دایرکتوری به مسیر جستجو شامل. -IwwithPrefixBefore آن را در همان مکان قرار می دهد -I
خواهد شد -ithprefix آن را در جایی قرار می دهد -idirafter می توانست
-isysroot دیر
این گزینه مانند --sysroot گزینه ای است، اما فقط برای فایل های هدر (به جز برای
داروین را هدف می گیرد، جایی که هم برای فایل های هدر و هم برای کتابخانه ها اعمال می شود). را ببینید
--sysroot گزینه برای اطلاعات بیشتر
-imultilib دیر
استفاده کنید دیر به عنوان زیر شاخه ای از دایرکتوری حاوی سرصفحه های C++ خاص هدف.
-سیستم دیر
جستجو دیر برای فایل های هدر، بعد از همه دایرکتوری های مشخص شده توسط -I اما قبل از
دایرکتوری های سیستم استاندارد آن را به عنوان یک دایرکتوری سیستم علامت گذاری کنید، به طوری که یکسان شود
رفتار ویژه ای که برای فهرست های سیستم استاندارد اعمال می شود.
If دیر با "="" شروع می شود، سپس "=" با پیشوند sysroot جایگزین می شود. دیدن
--sysroot و -isysroot.
-نقل دادن دیر
جستجو دیر فقط برای فایل های هدر درخواست شده با "#include"فایل""; آنها نیستند
"#includeفایل>"، قبل از همه دایرکتوری های مشخص شده توسط -I و قبل از
دایرکتوری های سیستم استاندارد
If دیر با "="" شروع می شود، سپس "=" با پیشوند sysroot جایگزین می شود. دیدن
--sysroot و -isysroot.
fdirectives-only
هنگام پیش پردازش، دستورالعمل ها را مدیریت کنید، اما ماکروها را گسترش ندهید.
رفتار گزینه بستگی به -E و -پیش پردازش شده گزینه.
با -E، پیش پردازش محدود به رسیدگی به دستورالعمل هایی مانند "#define" است.
"#ifdef" و "#error". سایر عملیات پیش پردازنده، مانند توسعه ماکرو و
تبدیل سه گراف انجام نمی شود. علاوه بر این -DD گزینه به طور ضمنی است
فعال شده است
با -پیش پردازش شده، از پیش تعریف خط فرمان و اکثر ماکروهای داخلی می باشد
معلول. ماکروهایی مانند "__LINE__" که به بافت وابسته هستند، مدیریت می شوند
به طور معمول این امکان کامپایل فایلهایی را فراهم میکند که قبلاً با «-E» از پیش پردازش شدهاند
-fdirectives-only".
با هر دو -E و -پیش پردازش شده، قوانین برای -پیش پردازش شده اولویت داشته باشد. این
پیش پردازش کامل فایل هایی را که قبلاً با "-E" از پیش پردازش شده اند، فعال می کند
-fdirectives-only".
-فرالورها در شناسایی کننده ها
پذیرفتن $ در شناسه ها
-fextended-identifiers
نام کاراکترهای جهانی را در شناسه ها بپذیرید. این گزینه به طور پیش فرض فعال است
برای C99 (و نسخه های بعدی C استاندارد) و C++.
-Fno-canonical-system-headers
هنگام پیش پردازش، مسیرهای هدر سیستم را با متعارف سازی کوتاه نکنید.
-پیش پردازش شده
به پیش پردازنده نشان دهید که فایل ورودی قبلاً پردازش شده است. این
مواردی مانند بسط ماکرو، تبدیل سه گراف، اتصال خط جدید فرار شده را سرکوب می کند،
و پردازش بیشتر دستورالعمل ها. پیش پردازنده هنوز تشخیص می دهد و حذف می کند
نظرات، به طوری که شما می توانید یک فایل از پیش پردازش شده با ارسال کنید -C به کامپایلر بدون
چالش ها و مسائل. در این حالت، پیش پردازنده یکپارچه کمی بیشتر از یک توکنایزر است
برای قسمت های جلویی
-پیش پردازش شده اگر فایل ورودی دارای یکی از پسوندها باشد، ضمنی است .i, .ii or .mi.
اینها پسوندهایی هستند که GCC برای فایل های از پیش پردازش شده ایجاد شده توسط آنها استفاده می کند -Save- Temps.
-ftabstop =عرض
فاصله بین ایستگاه های تب را تنظیم کنید. این به پیش پردازنده کمک می کند تا ستون صحیح را گزارش دهد
اعداد در اخطارها یا خطاها، حتی اگر برگه ها در خط ظاهر شوند. اگر مقدار کمتر باشد
از 1 یا بیشتر از 100، گزینه نادیده گرفته می شود. پیش فرض 8 است.
-fdebug-cpp
این گزینه فقط برای اشکال زدایی GCC مفید است. هنگام استفاده با -E، اشکال زدایی را تخلیه می کند
اطلاعات در مورد نقشه های مکان قبل از هر نشانه در خروجی، dump of قرار می گیرد
نقشه ای که موقعیت آن به آن تعلق دارد. روگرفت نقشه که محل یک نشانه را در خود جای داده است
خواهد بود:
{"P":F ;"F":F ;"L": ;"C": ;"S": ;"م": ;"E": "محل": }
هنگام استفاده بدون -E، این گزینه هیچ تاثیری ندارد.
-افتراک-کلان-گسترش[=سطح]
ردیابی مکان نشانهها در میان بسطهای کلان. این به کامپایلر امکان انتشار می دهد
تشخیصی در مورد پشته گسترش ماکرو فعلی هنگامی که یک خطای کامپایل در آن رخ می دهد
یک گسترش کلان استفاده از این گزینه باعث مصرف پیش پردازنده و کامپایلر می شود
حافظه بیشتر را سطح پارامتر را می توان برای انتخاب سطح دقت نشانه استفاده کرد
ردیابی مکان بنابراین در صورت لزوم مصرف حافظه را کاهش می دهد. ارزش 0 of
سطح این گزینه را غیرفعال می کند مثل اینکه خیر -افتراک-کلان-گسترش حضور داشت در
خط فرمان ارزش 1 بهخاطر این، مکانهای نشانهها را در حالت تنزل ردیابی میکند
حداقل سربار حافظه در این حالت تمام نشانه های حاصل از گسترش یک
آرگومان یک ماکرو تابع مانند مکان یکسانی دارد. ارزش 2 توکن ها را ردیابی می کند
مکان ها به طور کامل این مقدار بیشترین حافظه را تشنه می کند. وقتی این گزینه داده می شود
بدون آرگومان، مقدار پارامتر پیش فرض است 2.
توجه داشته باشید که "-ftrack-macro-expansion=2" به طور پیش فرض فعال است.
-fexec-charset=کاراکتر
مجموعه کاراکترهای اجرایی را که برای ثابت های رشته و کاراکتر استفاده می شود، تنظیم کنید. پیشفرض
UTF-8 است. کاراکتر می تواند هر کدگذاری باشد که توسط کتابخانه "iconv" سیستم پشتیبانی می شود
معمولی
-FWIDE-EXEC-charset =کاراکتر
مجموعه کاراکترهای اجرای گسترده را که برای ثابت های رشته و کاراکتر گسترده استفاده می شود، تنظیم کنید.
پیش فرض UTF-32 یا UTF-16 است، هر کدام که با عرض "wchar_t" مطابقت دارد. مانند
با -Fexec-charset, کاراکتر می تواند هر رمزگذاری پشتیبانی شده توسط "iconv" سیستم باشد
روال کتابخانه؛ با این حال، شما با رمزگذاری هایی که مناسب نیستند مشکل خواهید داشت
دقیقا در "wchar_t".
-finput-charset=کاراکتر
مجموعه کاراکترهای ورودی را که برای ترجمه از مجموعه کاراکتر ورودی استفاده میشود، تنظیم کنید
فایل به مجموعه کاراکتر منبع مورد استفاده توسط GCC. اگر محل تعیین نشده باشد، یا GCC
نمی توان این اطلاعات را از محلی دریافت کرد، پیش فرض UTF-8 است. این میتواند باشد
توسط محلی یا این گزینه خط فرمان لغو می شود. در حال حاضر فرمان -
در صورت وجود تضاد، گزینه line اولویت دارد. کاراکتر می تواند هر کدگذاری باشد
توسط روال کتابخانه "iconv" سیستم پشتیبانی می شود.
دایرکتوری fworking
تولید خط نشانگرها را در خروجی پیش پردازنده فعال کنید که به کامپایلر اجازه می دهد
دایرکتوری کاری فعلی را در زمان پیش پردازش بدانید. وقتی این گزینه است
فعال شود، پیش پردازنده پس از نشانگر خط اولیه، نشانگر خط دوم را منتشر می کند
با دایرکتوری کاری فعلی که با دو اسلش همراه است. GCC از این استفاده خواهد کرد
دایرکتوری، زمانی که در ورودی از پیش پردازش شده وجود دارد، به عنوان دایرکتوری که به عنوان ساطع می شود
دایرکتوری فعلی در برخی از فرمت های اطلاعات اشکال زدایی. این گزینه است
اگر اطلاعات اشکال زدایی فعال باشد، به طور ضمنی فعال می شود، اما می توان از این کار جلوگیری کرد
شکل نفی -fno-working-directory. اگر -P پرچم در دستور وجود دارد
خط، این گزینه هیچ تاثیری ندارد، زیرا هیچ دستورالعمل "#line" منتشر نمی شود.
-fno-show-column
شماره ستون ها را در عیب یابی چاپ نکنید. در صورت انجام تشخیص، این ممکن است ضروری باشد
اسکن شدن توسط برنامه ای که اعداد ستون ها را نمی فهمد، مانند
دژاگنو.
-A گزاره=پاسخ
با محمول ادعا کنید گزاره و پاسخ پاسخ. این فرم است
به شکل قدیمی تر ترجیح داده می شود -A گزاره(پاسخ)، که هنوز هم پشتیبانی می شود، زیرا
از کاراکترهای خاص پوسته استفاده نمی کند.
-A -گزاره=پاسخ
یک ادعا با محمول را لغو کنید گزاره و پاسخ پاسخ.
-dCHARS
کاراکترها دنباله ای از یک یا چند کاراکتر زیر است و نباید باشد
قبل از یک فاصله کاراکترهای دیگر توسط کامپایلر مناسب تفسیر می شوند
برای نسخههای آینده GCC محفوظ است، و بنابراین بیصدا نادیده گرفته میشوند. اگر مشخص کنید
شخصیت هایی که رفتارشان در تضاد است، نتیجه تعریف نشده است.
M به جای خروجی معمولی، فهرستی از #تعريف كردن بخشنامه برای همه
ماکروهای تعریف شده در طول اجرای پیش پردازنده، از جمله از پیش تعریف شده
ماکروها این به شما راهی می دهد تا بفهمید چه چیزی در نسخه شما از پیش تعریف شده است
پیش پردازنده با فرض اینکه فایلی ندارید foo.h، دستور
لمس foo.h; cpp -dM foo.h
تمام ماکروهای از پیش تعریف شده را نشان می دهد.
در صورت استفاده از -dM بدون -E گزینه، -dM به عنوان مترادف برای
-fdump-rtl-mach.
D پسندیدن M جز از دو جهت: انجام می دهد نه شامل ماکروهای از پیش تعریف شده و آن می شود
خروجی هر دو la #تعريف كردن دستورالعمل ها و نتیجه پیش پردازش هر دو نوع
خروجی به فایل خروجی استاندارد بروید.
N پسندیدن D، اما فقط نام های کلان را منتشر می کنند، نه بسط آنها.
I تولید #include دستورالعمل ها علاوه بر نتیجه پیش پردازش.
U پسندیدن D به جز اینکه فقط ماکروهایی که بسط می یابند یا تعریف آنها آزمایش می شود
در دستورالعمل های پیش پردازنده، خروجی هستند. خروجی تا زمان استفاده به تعویق می افتد
تست ماکرو؛ و # وندف دستورالعمل ها نیز خروجی برای ماکروهای آزمایش شده اما
در آن زمان تعریف نشده بود
-P جلوگیری از تولید نشانگرهای خط در خروجی از پیش پردازنده. این ممکن است
هنگام اجرای پیش پردازنده روی چیزی که کد C نیست مفید است و ارسال خواهد شد
به برنامه ای که ممکن است توسط خط نشانگرها اشتباه گرفته شود.
-C نظرات را نادیده نگیرید. همه نظرات به فایل خروجی ارسال می شوند، به جز
برای نظرات در دستورالعمل های پردازش شده، که همراه با دستورالعمل حذف می شوند.
هنگام استفاده باید برای عوارض جانبی آماده باشید -C; باعث می شود پیش پردازنده به
نظرات را در نوع خود به عنوان نشانه در نظر بگیرید. به عنوان مثال، نظرات ظاهر شده در
شروع این که چه چیزی می تواند یک خط دستورالعمل باشد، باعث می شود که آن خط به یک خط تبدیل شود
خط منبع معمولی، زیرا اولین نشانه روی خط دیگر a نیست #.
-CCC نظرات را نادیده نگیرید، از جمله در هنگام گسترش ماکرو. این شبیه است -C، بجز
که نظرات موجود در ماکروها نیز به فایل خروجی منتقل می شوند
ماکرو گسترش یافته است.
علاوه بر عوارض جانبی -C گزینه، -CCC گزینه باعث ایجاد تمام سبک های C++ می شود
نظرات داخل یک ماکرو برای تبدیل به نظرات به سبک C. این برای جلوگیری از بعد است
استفاده از آن ماکرو از اظهار نظر ناخواسته باقی مانده خط منبع.
La -CCC گزینه به طور کلی برای پشتیبانی از نظرات lint استفاده می شود.
سنتی-cpp
سعی کنید رفتار پیش پردازنده های قدیمی C را بر خلاف ISO C تقلید کنید
پیش پردازشگرها
سه نمودارها
توالی های سه گراف را پردازش کنید.
نقشه برداری
کد ویژه را برای کار در سیستم های فایلی که فقط فایل های بسیار کوتاه را مجاز می دانند، فعال کنید
نام هایی مانند MS-DOS.
--کمک
--هدف-کمک
متنی را چاپ کنید که تمام گزینه های خط فرمان را به جای پیش پردازش هر چیزی توصیف می کند.
-v حالت پرمخاطب. شماره نسخه GNU CPP را در ابتدای اجرا چاپ کنید و
فرم نهایی مسیر شامل را گزارش دهید.
-H نام هر فایل هدر مورد استفاده را علاوه بر سایر فعالیت های عادی چاپ کنید. هر یک
نام تورفتگی نشان می دهد که چقدر در عمق است #include پشته آن است. هدر از پیش کامپایل شده
فایلها نیز چاپ میشوند، حتی اگر نامعتبر باشند. یک از پیش کامپایل شده نامعتبر
فایل هدر با چاپ شده است ...ایکس و معتبر با ...! .
-version
- نسخه
شماره نسخه GNU CPP را چاپ کنید. با یک خط تیره، به طور معمول به پیش پردازش ادامه دهید.
با دو خط تیره فوراً خارج شوید.
محیط زیست
این بخش متغیرهای محیطی را توصیف می کند که بر نحوه عملکرد CPP تأثیر می گذارد. تو می توانی
از آنها برای تعیین دایرکتوری ها یا پیشوندهایی برای استفاده در هنگام جستجوی فایل های شامل یا به استفاده کنید
کنترل خروجی وابستگی
توجه داشته باشید که می توانید مکان هایی را برای جستجو با استفاده از گزینه هایی مانند -I، و کنترل
خروجی وابستگی با گزینه هایی مانند -M. اینها بر متغیرهای محیطی اولویت دارند،
که به نوبه خود بر پیکربندی GCC اولویت دارند.
CPATH
C_INCLUDE_PATH
cplus_include_path
OBJC_INCLUDE_PATH
مقدار هر متغیر فهرستی از دایرکتوری ها است که با یک کاراکتر خاص از هم جدا شده اند
پسندیدن PATH، که در آن به دنبال فایل های هدر بگردید. شخصیت خاص،
"PATH_SEPARATOR" وابسته به هدف است و در زمان ساخت GCC تعیین می شود. برای مایکروسافت
اهداف مبتنی بر ویندوز یک نقطه ویرگول است و تقریباً برای همه اهداف دیگر یک است
روده بزرگ
CPATH فهرستی از دایرکتوریها را مشخص میکند که گویی با آنها مشخص شده است -I، اما
پس از هر مسیر داده شده با -I گزینه های موجود در خط فرمان این متغیر محیطی
بدون توجه به اینکه کدام زبان در حال پیش پردازش است استفاده می شود.
متغیرهای محیطی باقیمانده فقط هنگام پیش پردازش یک مورد خاص اعمال می شوند
زبان نشان داده شده است. هر کدام فهرستی از دایرکتوری ها را مشخص می کند که باید جستجو شوند
مشخص شده با -سیستم، اما پس از هر مسیر داده شده با -سیستم گزینه های موجود در
خط فرمان.
در تمام این متغیرها، یک عنصر خالی به کامپایلر دستور می دهد تا جریان خود را جستجو کند
دایرکتوری کار عناصر خالی می توانند در ابتدا یا انتهای یک مسیر ظاهر شوند. برای
به عنوان مثال، اگر مقدار CPATH ":/special/include" است که همان اثر را دارد
-NS. -I/ویژه/شامل.
DEPENDENCIES_OUTPUT
اگر این متغیر تنظیم شده باشد، مقدار آن نحوه خروجیسازی وابستگیها را برای Make based مشخص میکند
روی فایلهای هدر غیر سیستمی که توسط کامپایلر پردازش میشوند. فایل های هدر سیستم هستند
در خروجی وابستگی نادیده گرفته شده است.
ارزش DEPENDENCIES_OUTPUT می تواند فقط یک نام فایل باشد، در این صورت قوانین Make
با حدس زدن نام هدف از روی نام فایل منبع، روی آن فایل نوشته می شوند. یا
مقدار می تواند فرم داشته باشد پرونده هدف، در این صورت قوانین در فایل نوشته می شوند پرونده
با استفاده از هدف به عنوان نام هدف
به عبارت دیگر، این متغیر محیطی معادل ترکیب گزینه ها است -مامان
و -MF، با اختیاری -MT سوئیچ نیز
SUNPRO_DEPENDENCIES
این متغیر همان است DEPENDENCIES_OUTPUT (به بالا مراجعه کنید)، به جز آن سیستم
فایلهای هدر نادیده گرفته نمیشوند، بنابراین دلالت دارد -M به جای -مامان. با این حال
وابستگی به فایل ورودی اصلی حذف شده است.
از cpp-6 به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید