Visual Studio Code ni C++ ga sozlash haqida...
NoNameUserDev
Bu maqolamni o’qiyotgan hammaga salom! Bu mening birinchi maqolam. Bu maqolada Microsoft tomonidan taqdim etilgan bepul va ochiq kodli VS Code integrallashgan dasturlash muhitini C++ dasturlash tiliga moslashtirish haqida yozib o’taman va ushbu maqola oxirida siz VS Code orqali quyidagi sanalib o’tilgan ishlarni amlaga oshira olasizlar:
· Qo’lda to’g’rilangan IntelliSense yordamida qulay kod yozish
· Yozilgan kodni ishga tushirish
· Yozilgan kodni tahrirlash (debugging)
· Va yana ko’p narsalar...
Kerakli fayllarni ko’chirib olamiz
Demak, boshladik. Birinchi o’rinda, kerakli dastur va kompilyatorlarni ko’chirib olishingiz kerak. Ular:
· VS Code. U siz ish bitmaydi :)
· MinGW Distro. MinGW va boshqa kerakli C++ kutubxonalari yig’ilgan dastur-o’rnatuvchi.
· VS Code ga C/C++ for Visual Studio Code plagini. U plaginni VS Code ning o'zidan o’rnatib olasiz.
MinGW Distro ni o’rnatamiz
VS Code ni o’rnatganingizdan keyin, MinGW Distro ni o’rnating. Yaxshisi, sistema diskidan tanlang (“C:\” odatda).
U dastur siz tanlangan joyga arxivdan chiqariladi. U yerdan set_distro_paths.bat faylini ishga tushiring. MinGW Distro to’liq o’rnatilganini tekshirish uchun cmd dan keyingi kommandani kiriting: g++ --version
Agar xato chiqmasa, demak siz MinGW Distro ni muvaffaqiyatli o’rnatgansiz.
VS Code C/C++ plugin
Texnik ishlarni tugatdik. Endi esa hamma ish VS Code da amalga oshiriladi. Dasturni ishga tushuring. Tepada aytib o’tilgan plaginni o’rnating (internet kerak bo’ladi).

IntelliSense ni to’g’rilaymiz

Plagin o’rnatilgandan so’ng, joriy ish papkasini tanlang. Bu ".vscode" papkasi yaratilishi va umuman, kod tuza olishmiz uchun kerak bo’ladi. Papka tanlangandan keyin Ctrl+Shift+P kombinatsiyasini bosing va qidiruv joyida Edit configuration deb qidiring va uni tanlang. Natijada c_cpp_properties.json fayli yaratiladi. Uni quyidagicha o’zgartiring:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "C:\\mingwdistro\\MinGW\\bin\\g++.exe",
"cStandard": "c11",
"cppStandard": "c++14",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
compilerPath ga MinGW Distro papkasi turgan joydagi g++.exe ni ko’rsating
Tuzgan dasturimizni ishga tushiramiz
C++ kod faylini yarating va test uchun Hello World kodini kiriting va faylni *.cpp kengaytmasida saqlang. Ctrl+Shift+P qidiruvidan Configure Task ni izlang va uning ustiga bosing va Create task.json from file template va Others (aslida farqi yo’q) ni tanlang. Natijada tasks.json fayli yaratiladi. Uni quyidagicha o’zgartiring:
{
"version": "2.0.0",
"tasks": [
{
"label": "Build debug version",
"type": "shell",
"command": "g++.exe",
"args": [
"-g", "${file}"
]
}
]
}
label ga xohlaganingizdek nom berishingiz mumkin
Endi esa, Terminal -> Run Task… menyusidan “Build debug version” vazifasini tanlang. Natijada *.cpp fayl kompilyatsiyalanadi va debug versiyasiga mo’ljallangan a.exe fayl yaratiladi.
Diqqat! Vazifani tanlashdan oldin *.cpp faylni aktiv qilib olishingiz kerak. Uning uchun *.cpp fayl yorlig'ini ustiga ikki marotaba bossangiz kifoya.
Ctrl+F5 ni bosib, C++ (GDB/LLDB) ni tanlang (aslida farqi yo'q). Natijada launch.json fayli yaratiladi. Uni quyidagicha o'zgartiring:
{
"version": "0.2.0",
"configurations": [
{
"preLaunchTask": "Build debug version",
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${cwd}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\mingwdistro\\MinGW\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
miDebuggerPath ga MinGW Distro papkalari ichida turgan gdb.exe ni topib, manzilini ko'rsating.
Ctrl+F5 ni qaytadan bosing. Qilgan ishlarimizdan so'ng, nihoyat, dastur ishga tushadi!

Agar maqolam sizga yoqgan bo'lsa, telegramda ushbu maqola bo'yicha diskussiya uchun ochilgan guruhga qo'shiling. Savollaringiz bo'lsa, javob berishga urinib ko'raman. Maqolamning davomi debugging haqida bo'ladi. Yana bir bor, o'qib chiqganingiz uchun rahmat! Va maqola davomini kutib qoling...