C++ Compiler Guide

راهنمای نصب کامپایلر c/c++ برای شرایط بسته اینترنت

۱۵ مارس ۲۰۲۶

سلام امیدوارم که حال همگی شما خوب باشه. با توجه به وضعیت اینترنت ایران که باعث شده دسترسی به سورس های اصلی و میرور ها از بین بره، امکان داره بعضی از بچه ها که تازه کار ترن نتونن میرور یا سورسی رو پیدا بکنن.

یه نکته مهم: با توجه به وضعیت اینترنت کشور، تمام لینک ها و سورس هایی که معرفی شده داخلی هستند و غیر رسمی - بهتره در شرایط نرمال از لینک ها/سورس ها و میرور های رسمی استفاده بکنید.

این پست اختصاصا برای دانشجو هایی نوشته میشه که الان نیاز به نصب کامپایلر هایی برای c/c++ دارن.

تاپیک ها:

۱ - تعریف کامپایلر و ادیتور

کامپایلر (compiler): نقش تبدیل کد هارو به زبان ماشین داره برای اینکه cpu بتونه کد هایی که ما بهش میدیم رو اجرا کنه.

برای مثال وقتی ما کدی مثل کد زیر رو مینویسیم نیاز داره مسیری رو طی بکنه تا تبدیل بشه به ۰۱ هایی که cpu توان درکشون رو داشته باشه:

int main ()
{
    int a = 4;
    return 0;
}

این کد ابتدا به زبان اسمبلی و سپس به کد ماشین تبدیل میشه:

.file   "a.c"
.text
.globl  main
.type   main, @function
main:
.LFB0:
.cfi_startproc
pushq   %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq    %rsp, %rbp
.cfi_def_cfa_register 6
movl    $4, -4(%rbp)
movl    $0, %eax
popq    %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size   main, .-main
.ident  "GCC: (GNU) 15.2.1 20260123 (Red Hat 15.2.1-7)"
.section        .note.GNU-stack,"",@progbits

و در نهایت به کد ماشین (Machine Code/Binary):

00000864: f30f 1efa 31ed 4989 d15e 4889 e248 83e4  ....1.I..^H..H..
00000880: f050 5445 31c0 31c9 48c7 c746 0440 00ff  .PTE1.1.H..F.@..
00000896: 1553 2c00 00f4 662e 0f1f 8400 0000 0000  .S,...f.........
00000912: f30f 1efa c366 2e0f 1f84 0000 0000 0090  .....f..........
00000928: b808 3040 0048 3d08 3040 0074 13b8 0000  ..0@.H=.0@.t....
00000944: 0000 4885 c074 09bf 0830 4000 ffe0 6690  ..H..t...0@...f.
00000960: c30f 1f40 0066 662e 0f1f 8400 0000 0000  ...@.ff.........
00001088: f30f 1efa eb8a 5548 89e5 c745 fc04 0000  ......UH...E....
00001104: 00b8 0000 0000 5dc3 f30f 1efa 4883 ec08  ......].....H...

و این مسیر به این شکله:

c/c++ -> assebmly -> machine code(binary)

پس کار کامپایلر تبدیل کد ما به زبان ماشین با این ترتیبه. کامپایلر شبیه یه برنامست که فایل مارو میگیره و تبدیل میکنه به زبان ماشین. ما نیاز به یه فضایی داریم که بخوایم کد های خودمون رو بنویسیم.

نیاز نیست خیلی فکرتون سراغ چیز های پیچیده ای بره. ما میتونیم از ساده ترین ادیتور ها مثل notepad استفاده بکنیم برای این.

ولی خب برای اینکه میخوایم یه سری امکانات حرفه ای تری داشته باشیم که کارمون رو راحت تر بکنه میریم سراغ ادیتور هایی مثل vscode , nvim , …

۲ - معرفی کامپایلر های معروف برای c/c++

خب حالا که فهمیدیم کامپایلر چیه، بد نیست با چند تا از معروف‌هایش آشنا بشیم. تو دنیای سی و سی‌پلاس‌پلاس، چند تا گزینه خیلی معروف هستن که تقریباً همه میشناسنشون:

GCC: معروف ترین کامپایلری که وجود داره و برای پروژه gnu هست

Clang: با ارفاق یکی از رقیب های gcc تقریبا دیفالت روی mac ها نصبه

MSVC : اگه ویندوزی هستید و با Visual Studio کار می‌کنید، این همون کامپایلر خود مایکروسافته.

MinGW: پورتی از gcc برای ویندوز

۳ - معرفی چند compiler online

سرویس هایی رو اینترنت هستن که بیان همین عملیاتی که کامپایلر روی سیستم ما انجام میده رو روی سرور خودشون انجام بدن و بعضی پیچیدگی هارو از روی دوش ما بردارن.

ولی فراموش نکنید که این سرویس ها فقط برای تسته و واقعا هیچ برنامه نویسی از این سرویس ها استفاده نمیکنه.

بهتره که برید سراغ کامپایلر های واقعی و با پیچیدگی هاش درگیر بشید (لای همین درگیری ها چیز های جدیدی رو یاد میگیرید).

بعضی از همین کامپایلر های آنلاین (لینک‌های داخلی):

Source Sara Compiler

Matlabkar TryIt

ProgramStore Compiler

(فراموش نکنید که زبانی که دارید بهش کد مینویسید رو انتخاب بکنید)

و در نهایت یاداوری میکنم برای یادگیری بیشتر کامپایلر های آنلاین اصلا پیشنهاد نمیشه.

۴ - توضیح نصب کامپایلر c/c++ برای linux

اگر لینوکسی هستید gcc/g++ دیفالت نصبه روی همه توزیع ها ولی خب میرور های رسمی برای نصب کردن ابزار های اضافی کار نمیکنه پس میتونید از میرور های زیر استفاده کنید

iut repo

runflare repo

۵ - توضیح نصب کامپایلر c/c++ برای windows

توی ویندوز هم راحت ترین روشی که بتونید کامپایلر بالا بیارید code blocks که میتونید از لینک زیر دانلود و نصب کنبد

code blocks

visual studio code همون vscode نیست

یا اینکه میتونید برید سراغ visual studio code که به عنوان گزینه ای برای شروع پیشنهادش نمیکنم ولی خب اگر خواستید اون هم از لینک زیر قابل دانلوده

visual studio code

۶ - توضیح نصب کامپایلر c/c++ برای android

برای اندروید هم کامپایلر های مختلفی وجود داره میتونید سراغ برنامه های زیر برید

cxxdriod

C++ Compiler

۷ - توضیح نصب کامپایلر c/c++ برای mac

کاربرای مک هم کارشون راحته. کافیه ترمینال رو باز کنید و این دستور رو بزنید:

xcode-select --install

بعدش یه پنجره باز میشه و گزینه نصب رو میزنید. این ابزار Xcode Command Line Tools کامپایلر Clang رو براتون نصب میکنه.

جمع بندی نهایی

در نهایت مهم اینه که بتونید نصب کنید اولین کامپایلرتون رو که احتمال داره توی مسیرش گیر بکنید یا به در و دیوار بخورید ولی خب نترسید در نهایت میتونید درستش کنید (به عنوان حرف اخر کامپایلر های انلاین برای کسایی که تازه شروع میکنن وسوسه برانگیزه ولی ازش فرار کنید . بعدا ازم تشکر میکنید)