لطفا صبرکنید...
۱۰٪
تخفیف ویژه خرید نقدی
کد: L74W2B
زرین‌پال درگاه امن
فرصت محدود
خرید نقدی
0

۰.۹ — پیکربندی کامپایلر: پیکربندی‌های ساخت (Build Configurations)


پیکربندی ساخت (Build Configuration) که به آن هدف ساخت (Build Target) نیز گفته می‌شود، مجموعه‌ای از تنظیمات پروژه است که تعیین می‌کند IDE شما چگونه پروژه شما را بسازد. پیکربندی ساخت معمولاً شامل مواردی مانند نام فایل اجرایی، پوشه‌هایی که IDE برای جستجوی کدهای دیگر و فایل‌های کتابخانه در آنها جستجو می‌کند، اینکه آیا اطلاعات اشکال‌زدایی نگهداری شوند یا حذف شوند، میزان بهینه‌سازی برنامه توسط کامپایلر و غیره است. به طور کلی، بهتر است این تنظیمات را در مقادیر پیش‌فرض خود باقی بگذارید، مگر اینکه دلیل خاصی برای تغییر چیزی داشته باشید.

وقتی یک پروژه جدید در IDE خود ایجاد می‌کنید، بیشتر IDEها دو پیکربندی ساخت مختلف برای شما تنظیم می‌کنند: یک پیکربندی انتشار (Release Configuration) و یک پیکربندی اشکال‌زدایی (Debug Configuration).


پیکربندی اشکال‌زدایی (Debug Configuration)

پیکربندی اشکال‌زدایی برای کمک به شما در اشکال‌زدایی برنامه طراحی شده است و به طور کلی همان پیکربندی است که هنگام نوشتن برنامه‌های خود از آن استفاده خواهید کرد. این پیکربندی تمام بهینه‌سازی‌ها را غیرفعال می‌کند و شامل اطلاعات اشکال‌زدایی است که برنامه‌های شما را بزرگ‌تر و کندتر می‌کند، اما اشکال‌زدایی را بسیار آسان‌تر می‌سازد. پیکربندی اشکال‌زدایی معمولاً به‌طور پیش‌فرض به عنوان پیکربندی فعال انتخاب می‌شود. در درس‌های بعدی بیشتر در مورد تکنیک‌های اشکال‌زدایی صحبت خواهیم کرد.


پیکربندی انتشار (Release Configuration)

پیکربندی انتشار برای زمانی طراحی شده است که برنامه خود را به عموم منتشر می‌کنید. این نسخه معمولاً برای اندازه و عملکرد بهینه‌سازی می‌شود و اطلاعات اشکال‌زدایی اضافی را شامل نمی‌شود. از آنجایی که پیکربندی انتشار شامل تمام بهینه‌سازی‌ها است، این حالت برای آزمایش عملکرد کد شما نیز مفید است (که بعداً در این مجموعه آموزشی نحوه انجام آن را نشان خواهیم داد).


مقایسه اندازه فایل‌های اجرایی

وقتی برنامه Hello World (از درس ۰.۷ — کامپایل کردن اولین برنامه شما) با استفاده از Visual Studio ساخته شد، فایل اجرایی تولیدشده در پیکربندی اشکال‌زدایی ۶۵ کیلوبایت بود، در حالی که فایل اجرایی ساخته‌شده در نسخه انتشار ۱۲ کیلوبایت بود. این تفاوت تا حد زیادی به دلیل اطلاعات اشکال‌زدایی اضافی است که در ساخت اشکال‌زدایی نگهداری می‌شود.


پیکربندی‌های سفارشی

اگرچه می‌توانید پیکربندی‌های ساخت سفارشی خود را ایجاد کنید، اما به ندرت دلیلی برای این کار خواهید داشت، مگر اینکه بخواهید دو ساخت ساخته‌شده با تنظیمات کامپایلر مختلف را مقایسه کنید.

بهترین روش

هنگام توسعه برنامه‌های خود از پیکربندی ساخت اشکال‌زدایی (Debug) استفاده کنید. وقتی آماده‌اید که فایل اجرایی خود را به دیگران منتشر کنید، یا می‌خواهید عملکرد را آزمایش کنید، از پیکربندی ساخت انتشار (Release) استفاده کنید.

 

برخی از IDEها (مانند Visual Studio) همچنین پیکربندی‌های ساخت جداگانه‌ای برای پلتفرم‌های مختلف ایجاد می‌کنند. برای مثال، Visual Studio پیکربندی‌های ساخت را برای هر دو پلتفرم x86 (۳۲ بیتی) و x64 (۶۴ بیتی) ایجاد می‌کند.


تغییر بین پیکربندی‌های ساخت

برای کاربران Visual Studio

روش‌های متعددی برای تغییر بین Debug و Release در Visual Studio وجود دارد. ساده‌ترین راه این است که انتخاب خود را مستقیماً از کادر کشویی Solution Configurations در نوار ابزار استاندارد تنظیم کنید:

فعلاً آن را روی Debug تنظیم کنید.

همچنین می‌توانید با انتخاب منوی Build > Configuration Manager، به کادر محاوره‌ای مدیریت پیکربندی (Configuration Manager) دسترسی پیدا کنید و پیکربندی فعال راه‌حل را تغییر دهید.

در سمت راست کادر کشویی Solution Configurations، Visual Studio همچنین یک کادر کشویی Solution Platforms دارد که به شما امکان می‌دهد بین پلتفرم‌های x86 (۳۲ بیتی) و x64 (۶۴ بیتی) جابه‌جا شوید.

برای کاربران Code::Blocks

در Code::Blocks، باید آیتمی به نام Build Target (هدف ساخت) در نوار ابزار کامپایلر (Compiler toolbar) مشاهده کنید:

فعلاً آن را روی Debug تنظیم کنید.

برای کاربران gcc و Clang

برای ساخت‌های اشکال‌زدایی (Debug)، گزینهٔ -ggdb را به خط فرمان اضافه کنید و برای ساخت‌های انتشار (Release)، از گزینه‌های -O2 -DNDEBUG استفاده کنید. در حال حاضر از گزینه‌های ساخت اشکال‌زدایی استفاده کنید.

برای GCC و Clang، از گزینهٔ -O# برای کنترل تنظیمات بهینه‌سازی استفاده می‌شود. رایج‌ترین گزینه‌ها به شرح زیر هستند:

  • -O0 سطح بهینه‌سازی توصیه‌شده برای ساخت‌های اشکال‌زدایی است، زیرا بهینه‌سازی را غیرفعال می‌کند. این تنظیم پیش‌فرض است.

  • -O2 سطح بهینه‌سازی توصیه‌شده برای ساخت‌های انتشار است، زیرا بهینه‌سازی‌هایی را اعمال می‌کند که باید برای همه برنامه‌ها مفید باشند.

  • -O3 بهینه‌سازی‌های بیشتری را اضافه می‌کند که ممکن است بسته به برنامهٔ خاص، عملکرد بهتری نسبت به -O2 داشته باشند یا نداشته باشند. پس از نوشتن برنامه، می‌توانید سعی کنید ساخت انتشار خود را با -O3 به جای -O2 کامپایل کنید و اندازه‌گیری کنید تا ببینید کدام سریع‌تر است.

برای اطلاعات بیشتر دربارهٔ گزینه‌های بهینه‌سازی، به آدرس زیر مراجعه کنید:
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

برای کاربران VS Code

وقتی برای اولین بار برنامه خود را اجرا کردید، یک فایل جدید به نام tasks.json در زیر پوشهٔ .vscode در پنجرهٔ کاوشگر (Explorer) ایجاد شد. فایل tasks.json را باز کنید، عبارت “args” را پیدا کنید، و سپس خط “${file}” را در آن بخش پیدا کنید.

بالای خط “${file}” ، یک خط جدید حاوی دستور زیر (هر کدام در یک خط) برای زمان اشکال‌زدایی (Debug) اضافه کنید:

"-ggdb",

بالای خط “${file}” ، خطوط جدید حاوی دستورات زیر (هر کدام در یک خط) برای ساخت‌های انتشار (Release) اضافه کنید:

"-O2",
"-DNDEBUG",
 
فرشید پوشنده وب‌سایت
من فرشید پوشنده، کارشناس ارشد مهندسی نرم‌افزار، مدیر و مدرس آکادمی آنلاین آموزش برنامه‌نویسی کدنویسم هستم. با سال‌ها تجربه در حوزه آموزش و توسعه نرم‌افزار، تلاش کرده‌ام جامع‌ترین دوره‌های آموزشی در حوزه برنامه‌نویسی را به علاقه‌مندان ارائه دهم. در طول مسیر حرفه‌ای خود، به زبان‌ها و فناوری‌های C++ ،Java ،Python ،Qt ،QML ،SQL ،HTML ،CSS و وردپرس تسلط پیدا کرده‌ام.

دیدگاهتان را بنویسید