MinGW ์ค์น (C ์ปดํ์ผ๋ฌ)
MinGW ๋ค์ด๋ก๋
GCC (GNU Compiler Collection)๋?
GCC๋ GNU ํ๋ก์ ํธ์์ ๊ฐ๋ฐํ ์คํ์์ค ์ปดํ์ผ๋ฌ ๋ชจ์์
๋๋ค. C, C++, Objective-C, Fortran, Ada ๋ฑ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค.
์ฃผ์ ํน์ง
โข
์คํ์์ค: ๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ ์์ค ์ฝ๋๊ฐ ๊ณต๊ฐ๋์ด ์์ต๋๋ค.
โข
ํฌ๋ก์ค ํ๋ซํผ: Windows, Linux, macOS ๋ฑ ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
โข
์ต์ ํ: ๋ค์ํ ์ต์ ํ ์ต์
์ ์ ๊ณตํ์ฌ ํจ์จ์ ์ธ ์คํ ํ์ผ์ ์์ฑํฉ๋๋ค.
โข
ํ์ค ์ค์: C/C++ ์ธ์ด ํ์ค(ANSI C, ISO C++)์ ์ค์ํฉ๋๋ค.
์ปดํ์ผ๋ฌ(Compiler)๋?
์ปดํ์ผ๋ฌ๋ ์ฌ๋์ด ์์ฑํ ๊ณ ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(C, C++, Java ๋ฑ)๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ ์์ค ์ธ์ด(๊ธฐ๊ณ์ด ๋๋ ์ด์
๋ธ๋ฆฌ์ด)๋ก ๋ณํํ๋ ํ๋ก๊ทธ๋จ์
๋๋ค.
์ปดํ์ผ๋ฌ์ ์ฃผ์ ์ญํ
โข
์์ค ์ฝ๋ ๋ถ์: ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์ฝ๊ณ ๋ฌธ๋ฒ์ ๊ฒ์ฌํฉ๋๋ค.
โข
์ค๊ฐ ์ฝ๋ ์์ฑ: ์์ค ์ฝ๋๋ฅผ ์ค๊ฐ ํํ์ผ๋ก ๋ณํํฉ๋๋ค.
โข
์ต์ ํ: ์ฝ๋๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์คํ๋๋๋ก ๊ฐ์ ํฉ๋๋ค.
โข
๊ธฐ๊ณ์ด ์์ฑ: ์ต์ข
์ ์ผ๋ก ์ปดํจํฐ๊ฐ ์ง์ ์คํํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํํฉ๋๋ค.
์ปดํ์ผ ๊ณผ์
1.
์ ์ฒ๋ฆฌ(Preprocessing): #include, #define ๋ฑ์ ์ ์ฒ๋ฆฌ ์ง์๋ฌธ์ ์ฒ๋ฆฌํฉ๋๋ค.
2.
์ปดํ์ผ(Compilation): ์ ์ฒ๋ฆฌ๋ ์ฝ๋๋ฅผ ์ด์
๋ธ๋ฆฌ์ด๋ก ๋ณํํฉ๋๋ค.
3.
์ด์
๋ธ(Assembly): ์ด์
๋ธ๋ฆฌ์ด๋ฅผ ๊ธฐ๊ณ์ด(์ค๋ธ์ ํธ ํ์ผ)๋ก ๋ณํํฉ๋๋ค.
4.
๋งํน(Linking): ์ฌ๋ฌ ์ค๋ธ์ ํธ ํ์ผ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๊ฒฐํ์ฌ ์คํ ํ์ผ์ ์์ฑํฉ๋๋ค.
์ปดํ์ผ๋ฌ vs ์ธํฐํ๋ฆฌํฐ
๊ตฌ๋ถ | ์ปดํ์ผ๋ฌ | ์ธํฐํ๋ฆฌํฐ |
๋ณํ ๋ฐฉ์ | ์ ์ฒด ์ฝ๋๋ฅผ ํ ๋ฒ์ ๊ธฐ๊ณ์ด๋ก ๋ณํ | ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ์ด ์คํ |
์คํ ์๋ | ๋น ๋ฆ | ์๋์ ์ผ๋ก ๋๋ฆผ |
์๋ฌ ๊ฒ์ถ | ์ปดํ์ผ ์ ์ ์ฒด ์๋ฌ ๊ฒ์ถ | ์คํ ์ค ์๋ฌ ๋ฐ๊ฒฌ |
์์ | C, C++, Java | Python, JavaScript, Ruby |
์คํ ํ์ผ | ์์ฑ๋จ (.exe) | ์์ฑ๋์ง ์์ |
C์ธ์ด์ ์ปดํ์ผ๋ฌ
C์ธ์ด๋ ์ปดํ์ผ ์ธ์ด์ด๋ฏ๋ก, ์์ฑํ ์์ค ์ฝ๋(.c ํ์ผ)๋ฅผ ์คํํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ์ปดํ์ผ๋ฌ(GCC, MinGW ๋ฑ)๋ฅผ ์ฌ์ฉํ์ฌ ์คํ ํ์ผ(.exe)๋ก ๋ณํํด์ผ ํฉ๋๋ค.
MinGW์ ๋ค๋ฅธ C ์ปดํ์ผ๋ฌ ๋น๊ต
์ปดํ์ผ๋ฌ | ํ๋ซํผ | ํน์ง | ์ฅ์ | ๋จ์ |
MinGW | Windows | GCC ๊ธฐ๋ฐ, GNU ๋๊ตฌ ๋ชจ์ | ๋ฌด๋ฃ, ๊ฐ๋ฒผ์, Windows ๋ค์ดํฐ๋ธ ๋น๋ | POSIX ์ง์ ์ ํ์ |
MSVC | Windows | Microsoft Visual C++ ์ปดํ์ผ๋ฌ | Windows API ์ต์ ํ, Visual Studio ํตํฉ | ์ ๋ฃ(Community ์๋์
์ ๋ฌด๋ฃ), Windows ์ ์ฉ |
Clang | ํฌ๋ก์ค ํ๋ซํผ | LLVM ๊ธฐ๋ฐ, ๋ชจ๋ ์ปดํ์ผ๋ฌ | ๋น ๋ฅธ ์ปดํ์ผ, ๋ช
ํํ ์๋ฌ ๋ฉ์์ง, GCC ํธํ | ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธํ์ฑ ๋ฌธ์ |
GCC | ํฌ๋ก์ค ํ๋ซํผ | GNU Compiler Collection | ๊ด๋ฒ์ํ ํ๋ซํผ ์ง์, ์์ ์ , ํ์ค ์ค์ | ์๋ฌ ๋ฉ์์ง๊ฐ ๋ณต์กํ ์ ์์ |
TCC | ํฌ๋ก์ค ํ๋ซํผ | Tiny C Compiler | ๋งค์ฐ ๋น ๋ฅธ ์ปดํ์ผ ์๋, ์์ ํฌ๊ธฐ | ์ต์ ํ ๊ธฐ๋ฅ ์ ํ์ |
๊ฐ ์ปดํ์ผ๋ฌ ์ ํ ๊ฐ์ด๋
โข
MinGW: Windows์์ ๊ฐ๋ณ๊ฒ C/C++ ๊ฐ๋ฐ์ ์์ํ๊ณ ์ถ์ ๋
โข
MSVC: Windows ์ ์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ, Visual Studio ์ฌ์ฉ ์
โข
Clang: ๋ชจ๋ C++ ๊ธฐ๋ฅ ํ์ฉ, ๋ช
ํํ ๋๋ฒ๊น
์ด ํ์ํ ๋
โข
GCC: ๋ฆฌ๋
์ค/์ ๋์ค ํ๊ฒฝ, ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ
โข
TCC: ๋น ๋ฅธ ํ๋กํ ํ์ดํ, ์คํฌ๋ฆฝํ
์ฉ๋
์ค์น ํ์ผ ์คํ
mingw-get-setup.exe
์ค์น ์ต์
MinGW Installation Manager
ํจํค์ง ์ฒดํฌ
mingw32-base
mingw32-gcc-g++
msys-base
Plain Text
๋ณต์ฌ
์ค์น
Installation โ Apply Changes
Plain Text
๋ณต์ฌ
ํ๊ฒฝ๋ณ์ ์ค์
Windows ํ๊ฒฝ๋ณ์ PATH์ ์ถ๊ฐ
C:\MinGW\bin
Plain Text
๋ณต์ฌ
๋ช ๋ น์ด๋ก ํ๊ฒฝ๋ณ์ ์ค์ ํ๊ธฐ
โข
cmd
setx PATH "%PATH%;C:\MinGW\bin"
C
๋ณต์ฌ
โข
PowerShell
[Environment]::SetEnvironmentVariable(
"Path",
$env:Path + ";C:\MinGW\bin",
[EnvironmentVariableTarget]::User
)
C
๋ณต์ฌ
$env:PATH += ";C:\MinGW\bin";
C
๋ณต์ฌ
์ธํฐํ์ด์ค๋ก ํ๊ฒฝ๋ณ์ ์ค์ ํ๊ธฐ
โข
์์ > ๋ณ์ ๊ฒ์ > ์์คํ
ํ๊ฒฝ ๋ณ์ ํธ์ง
โข
[ ํ๊ฒฝ ๋ณ์ ]
โข
์์คํ
๋ณ์ > Path > [ ํธ์ง ]
โข
[ ์๋ก ๋ง๋ค๊ธฐ ]
โข
C:\MinGW\bin ์
๋ ฅ
โข
[ ํ์ธ ] > [ ํ์ธ ] > [ ํ์ธ ]
์ค์น ํ์ธ
ํฐ๋ฏธ๋ ์คํ
gcc --version
Plain Text
๋ณต์ฌ
์์
gcc (MinGW.org GCC-6.3.0) 6.3.0
Plain Text
๋ณต์ฌ
VSCode ์ค์น & ํ์ฅ ์ค์น
VSCODE ์ค์น
VSCODE ํ์ฅ ์ค์น
Visual Studio Code Extensions
C/C++ (Microsoft)
C/C++ Compile Run
Plain Text
๋ณต์ฌ
ํ๊ธ ๊นจ์ง ํด๊ฒฐ
1.
ํ์ผ > ๊ธฐ๋ณธ ์ค์ > ์ค์
2.
Encoding ๊ฒ์
3.
4.
Encoding : Korean(EUC-KR)
ํด๋ ์ด๊ธฐ
1.
[ ํ์ผ ] > [ ํด๋ ์ด๊ธฐ ]
2.
[ ์ ํด๋ ] : workspace
3.
[ ํด๋ ์ด๊ธฐ ]
์ ํ์ผ
1.
์ ํ์ผ
2.
ํ์ผ๋ช
์
๋ ฅ : hello.c
์ฝ๋ฉ
#include <stdio.h>
int main()
{
int num = 0;
printf("Hello World~!\n");
printf("์๋
์ธ์์~!\n");
printf("์
๋ ฅ : ");
scanf("%d", &num);
printf("num : %d\n", num);
return 0;
}
C
๋ณต์ฌ
ํ๊ธ ๊นจ์ง ์ฒดํฌ
์ฝ๋ ์คํ
F6
























