์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
GNU ํ๋ก์ ํธ์ ์คํ ์์ค ์ปดํ์ผ๋ฌ ์ปฌ๋ ์
. ์ ๋์ค/๋ฆฌ๋
์ค ๊ณ์ด ํ๋ซํผ์ ์ฌ์ค์ ํ์ค ์ปดํ์ผ๋ฌ๋ค. ๋ฆฌ์ฒ๋ ์คํจ๋จผ์ด 1987๋
์ ๋ง๋ค์๋ค.
์ฒ์์๋ C ์ปดํ์ผ๋ฌ์์ผ๋ฉฐ 'GNU C Compiler'์ ์ฝ์ด์๋ค. ํ์ง๋ง ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ฉด์ C++ ๊ฐ์ ๋ค๋ฅธ ์ธ์ด๋ ์ง์ํ๊ฒ ๋์๊ณ [1], 'GNU Compiler Collection'์ผ๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ์๋ค. ๋ฌผ๋ก ์ฝ์ด๋ ์ฌ์ ํ GCC์ด๋ค. ๊ณต์์ ์ผ๋ก ์ง์ํ๋ ์ธ์ด๋ C, C++, Objective-C, Fortran, Ada, Go์ด๋ค. Java๋ GCC 7.1 ๋ฒ์ ๋ถํฐ ์ง์์ด ์ค๋จ๋์๋ค. GNU ์ง์์์๋ GCC๋ก ์ปดํ์ผ์ ํ๊ณ Make๋ฅผ ์ด์ฉํด ๋น๋ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
์๋๋ C๋ก ๊ตฌํ๋์์ผ๋ 2013๋ ์ ๊ตฌํ ์ธ์ด๋ฅผ C++๋ก ๋ชจ๋ ๋ณ๊ฒฝํ์๋ค. # ๋ง๋ค์ด์ง์ง ์์ญ๋ ๋ ์ปดํ์ผ๋ฌ๋ผ ์ต์ ํ๋ ๋งค์ฐ ์ ๋์ด ์์ง๋ง, ๊ธฐ์กด ์ฝ๋์ ๊ตฌ์กฐ๊ฐ ์๋์ ํ๊ณ๋ก ์ธํด ์ค๋๋ ๊ด์ ์์๋ ์๋นํ ๋๋ฌ์์ ์ ๊ท ์ธ๋ ฅ์ด ๊ฑฐ์ ์ ์ ๋์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฒ์์๋ C ์ปดํ์ผ๋ฌ์์ผ๋ฉฐ 'GNU C Compiler'์ ์ฝ์ด์๋ค. ํ์ง๋ง ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ฉด์ C++ ๊ฐ์ ๋ค๋ฅธ ์ธ์ด๋ ์ง์ํ๊ฒ ๋์๊ณ [1], 'GNU Compiler Collection'์ผ๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ์๋ค. ๋ฌผ๋ก ์ฝ์ด๋ ์ฌ์ ํ GCC์ด๋ค. ๊ณต์์ ์ผ๋ก ์ง์ํ๋ ์ธ์ด๋ C, C++, Objective-C, Fortran, Ada, Go์ด๋ค. Java๋ GCC 7.1 ๋ฒ์ ๋ถํฐ ์ง์์ด ์ค๋จ๋์๋ค. GNU ์ง์์์๋ GCC๋ก ์ปดํ์ผ์ ํ๊ณ Make๋ฅผ ์ด์ฉํด ๋น๋ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
์๋๋ C๋ก ๊ตฌํ๋์์ผ๋ 2013๋ ์ ๊ตฌํ ์ธ์ด๋ฅผ C++๋ก ๋ชจ๋ ๋ณ๊ฒฝํ์๋ค. # ๋ง๋ค์ด์ง์ง ์์ญ๋ ๋ ์ปดํ์ผ๋ฌ๋ผ ์ต์ ํ๋ ๋งค์ฐ ์ ๋์ด ์์ง๋ง, ๊ธฐ์กด ์ฝ๋์ ๊ตฌ์กฐ๊ฐ ์๋์ ํ๊ณ๋ก ์ธํด ์ค๋๋ ๊ด์ ์์๋ ์๋นํ ๋๋ฌ์์ ์ ๊ท ์ธ๋ ฅ์ด ๊ฑฐ์ ์ ์ ๋์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
2. MinGW[ํธ์ง]
MinGW(Minimalist GNU for Windows)๋ผ๋ ์๋์ฐ์ฉ ํฌํฌ๋ ์กด์ฌํ์ฌ ์ฌ๋ฌ ์คํ ์์ค ํ๋ก๊ทธ๋จ๋ค์ ์๋์ฐ์์ ๋์๊ฐ๊ฒ ํ๋ ๋ฐ ์ผ์กฐํ๊ณ ์๋ค.
MinGW๋ MSYS์์ ๊ฒฐํฉ์ผ๋ก ๊ตฌ๋๋๋ค. MSYS๋ Minimal SYStem์ ์ฝ์๋ก, ์๋์ฐ์์ ์ ๋์ค์ ํฐ๋ฏธ๋ ํ๊ฒฝ์ ์ ๊ณตํด ์ฃผ๋ฉฐ ์ด๋ฅผ ํตํด MinGW์ GCC๋ฅผ ์ค์นํ๋ ๊ฒ์ด๋ค. MSYS์ ๋น์ทํ ํํ๋ฅผ ๊ฐ์ง Cygwin์ ๋จ์ ํฐ๋ฏธ๋์ด ์๋ ์ผ์ข ์ ๊ฐ์๋จธ์ ์ผ๋ก, ์๋์ฐ ์์ POSIX ๋ ์ด์ด๋ฅผ ์๋ก ์น์ด ์๋นํ ๋ฌด๊ฑฐ์ด ๋ฐ๋ฉด MinGW๋ POSIX ํธํ์ฑ์ ํฌ๊ธฐํ ๋์ ์๋์ฐ ํ๊ฒฝ๊ณผ ๋ค์ดํฐ๋ธ๋ก ์ฐ๊ฒฐ๋๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค. ์ด๋ฐ ์ด์ ๋ก ์ ๋์ค์์ POSIX API๋ฅผ ์ด์ฉํ๋ ์์ค ์ฝ๋๋ฅผ ์์ฑํ์ ๊ฒฝ์ฐ MinGW๋ก๋ ์ปดํ์ผ์ด ๋ถ๊ฐ๋ฅํ๋ค. Windows 10 Anniversary Update์์๋ WSL(Windows Subsystem for Linux)์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฆฌ๋ ์ค API๊ฐ ์๋์ฐ ์ปค๋ ๋ด๋ถ์ ์ง์ ํ์ฌ๋์์ผ๋ฏ๋ก, ์๋์ฐ์์ POSIX ํ๊ฒฝ์ ์ด์ฉํ๊ณ ์ถ๋ค๋ฉด WSL์ ์ด์ฉํ๋ฉด ๋๋ค.
๊ธฐ์กด์ MSYS 1.0์ 32๋นํธ ์ด์์ฒด์ ๋ง ์ง์ํ๋ค๋ ๋ฌธ์ ์ ์ด ์์๋๋ฐ, ์ด์ ๋ฐ๋ผ MSYS2 ๊ธฐ๋ฐ์ MinGW-w64๊ฐ ์ ์๋์ด 64๋นํธ ์๋์ฐ ํ๊ฒฝ์ ์ง์ํ๊ฒ ๋์๋ค. ์ฐธ๊ณ ๋ก ์๋์ฐ ํ๊ฒฝ์์์ GCC๋ ๊ธฐ์กด์ ์ ๋์ค, ๋ฆฌ๋ ์ค์ฉ GCC์ ๋์ผํ๊ฒ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์์ด๋๋ฐ์ดํธ ๊ด๋ จ ์์ฝ์ด๋ ํจ์(wchar_t, wprintf(), wcstok() ๋ฑ)๊ฐ ๋ํ์ ์ธ ์.
์๋์ฐ ํ์ผ ์ ์ถ๋ ฅ ์ ํ์ผ์ ์ ๋๋ก ์ฝ์ง ๋ชปํ๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์๊ณ , ๋น์ฃผ์ผ ์คํ๋์ค์์๋ง ์ฐ์ด๋ ๋นํ์ค ํ์ฅ ํจ์๋ ์ ๊ณตํ๊ณ ์๊ธฐ ๋๋ฌธ์ C/C++ ์ ๋ฌธ์์๊ฒ๋ ๊ถ์ฅํ ๋งํ ๊ฒ์ด ๋ชป ๋๋ค๋ ์๊ฒฌ์ด ์์ผ๋, ์ด๋ MS Windows์ ๋ก์ผ์ผ ๋ฌธ์ ์์ ๋น๋กฏ๋๋ค. Windows์ ๊ฒฝ์ฐ Windows 10 RS5์ ํ์ค ๋ก์ผ์ผ์ UTF-8๋ก ์ฌ์ฉํ๋ ์ต์ [2]์ด ๋ฒ ํ๋ก ์ถ๊ฐ๋์ด ์์ผ๋ ์ด ์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ด ์๋๊ธฐ์ ์ ์ญ ์์คํ ๋ก์ผ์ผ์ ๋ณ๋๋ก ์ค์ ๋ ๋ก์ผ์ผ์ ๋ฐ๋ฅด๊ฒ ๋๋ค. Windows์์ ์ ๋์ฝ๋ Awareํ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก wchar_t ์ ๊ฐ์ ์์ด๋๋ฐ์ดํธ ํ์ (Windows ์์๋ UTF-16)์ ์ฌ์ฉํ๊ฒ ๋๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์์คํ ์ MBCS๋ฅผ ๋ฐ๋ฅด๊ฒ ๋์ด ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ ํ์ผ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ด ์ ๋ฌดํ๋ค. C์ fopen()์ ํ๋กํ ํ์ ์ const char* ํ์๋ง ์กด์ฌํ๊ณ ์ด๋ MBCS๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ก์ผ์ผ์์ ๋ฒ์ด๋๋ ํ์ผ๋ช ์ ์ ๊ทผํ ์ ์๋ค. MSVC์ ๊ฒฝ์ฐ ๋นํ์ค ํจ์์ธ const wchar_t ์ค๋ฒ๋ผ์ด๋๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋, ํ์ค์ด ์๋ ๊ด๊ณ๋ก libc๋ฅผ ์ฌ์ฉํ๋ GCC์ ๊ฒฝ์ฐ ์ด๋ฌํ ํ์ผ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ด CreateFileW()์ ๊ฐ์ OS ์์ฒด์ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ด์ธ์๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ์ง ์๋๋ค. ๋ํ ์ฝ์์ wprintf() ๋ํ ์ฝ์์ ๊ธฐ๋ณธ๊ฐ์ ์ญ์๋ ์์คํ ๋ก์ผ์ผ์ ๋ฐ๋ฅด๋ฉฐ ์ด ๋ํ ๋ก์ผ์ผ์ ๋ฒ์ด๋๋ ๋ฌธ์์ด์ ์ ์์ ์ธ ์ถ๋ ฅ์ ์ํด์๋ WriteConsoleW()๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋ ๋ฑ, Windows๊ฐ ์ฌ์ฉํ๋ MBCS์ ๋ฌธ์ ์ ์ด์ง MSYS ํ๊ฒฝ์ ๋ฌธ์ ์ ์ด ์๋๋ค.
Cygwin์ ๊ธฐ๋ฅ์ WSL๋ก ํ์คํ ๋์ฒด๋์์ง๋ง, MinGW๋ ์๋์ฐ ํ๊ฒฝ์ ๊ทธ๋๋ก ์ ์งํ๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ง ์ฌ์ฉํด์ผ ํ ๊ฒฝ์ฐ[3] ์ ์ฉํ๊ฒ ์ฐ์ผ ์ ์์ด ์ฌ์ ํ ํ์์ฑ์ด ์๋ ์ํํธ์จ์ด์ด๋ค.
MinGW๋ MSYS์์ ๊ฒฐํฉ์ผ๋ก ๊ตฌ๋๋๋ค. MSYS๋ Minimal SYStem์ ์ฝ์๋ก, ์๋์ฐ์์ ์ ๋์ค์ ํฐ๋ฏธ๋ ํ๊ฒฝ์ ์ ๊ณตํด ์ฃผ๋ฉฐ ์ด๋ฅผ ํตํด MinGW์ GCC๋ฅผ ์ค์นํ๋ ๊ฒ์ด๋ค. MSYS์ ๋น์ทํ ํํ๋ฅผ ๊ฐ์ง Cygwin์ ๋จ์ ํฐ๋ฏธ๋์ด ์๋ ์ผ์ข ์ ๊ฐ์๋จธ์ ์ผ๋ก, ์๋์ฐ ์์ POSIX ๋ ์ด์ด๋ฅผ ์๋ก ์น์ด ์๋นํ ๋ฌด๊ฑฐ์ด ๋ฐ๋ฉด MinGW๋ POSIX ํธํ์ฑ์ ํฌ๊ธฐํ ๋์ ์๋์ฐ ํ๊ฒฝ๊ณผ ๋ค์ดํฐ๋ธ๋ก ์ฐ๊ฒฐ๋๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค. ์ด๋ฐ ์ด์ ๋ก ์ ๋์ค์์ POSIX API๋ฅผ ์ด์ฉํ๋ ์์ค ์ฝ๋๋ฅผ ์์ฑํ์ ๊ฒฝ์ฐ MinGW๋ก๋ ์ปดํ์ผ์ด ๋ถ๊ฐ๋ฅํ๋ค. Windows 10 Anniversary Update์์๋ WSL(Windows Subsystem for Linux)์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฆฌ๋ ์ค API๊ฐ ์๋์ฐ ์ปค๋ ๋ด๋ถ์ ์ง์ ํ์ฌ๋์์ผ๋ฏ๋ก, ์๋์ฐ์์ POSIX ํ๊ฒฝ์ ์ด์ฉํ๊ณ ์ถ๋ค๋ฉด WSL์ ์ด์ฉํ๋ฉด ๋๋ค.
๊ธฐ์กด์ MSYS 1.0์ 32๋นํธ ์ด์์ฒด์ ๋ง ์ง์ํ๋ค๋ ๋ฌธ์ ์ ์ด ์์๋๋ฐ, ์ด์ ๋ฐ๋ผ MSYS2 ๊ธฐ๋ฐ์ MinGW-w64๊ฐ ์ ์๋์ด 64๋นํธ ์๋์ฐ ํ๊ฒฝ์ ์ง์ํ๊ฒ ๋์๋ค. ์ฐธ๊ณ ๋ก ์๋์ฐ ํ๊ฒฝ์์์ GCC๋ ๊ธฐ์กด์ ์ ๋์ค, ๋ฆฌ๋ ์ค์ฉ GCC์ ๋์ผํ๊ฒ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์์ด๋๋ฐ์ดํธ ๊ด๋ จ ์์ฝ์ด๋ ํจ์(wchar_t, wprintf(), wcstok() ๋ฑ)๊ฐ ๋ํ์ ์ธ ์.
์๋์ฐ ํ์ผ ์ ์ถ๋ ฅ ์ ํ์ผ์ ์ ๋๋ก ์ฝ์ง ๋ชปํ๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์๊ณ , ๋น์ฃผ์ผ ์คํ๋์ค์์๋ง ์ฐ์ด๋ ๋นํ์ค ํ์ฅ ํจ์๋ ์ ๊ณตํ๊ณ ์๊ธฐ ๋๋ฌธ์ C/C++ ์ ๋ฌธ์์๊ฒ๋ ๊ถ์ฅํ ๋งํ ๊ฒ์ด ๋ชป ๋๋ค๋ ์๊ฒฌ์ด ์์ผ๋, ์ด๋ MS Windows์ ๋ก์ผ์ผ ๋ฌธ์ ์์ ๋น๋กฏ๋๋ค. Windows์ ๊ฒฝ์ฐ Windows 10 RS5์ ํ์ค ๋ก์ผ์ผ์ UTF-8๋ก ์ฌ์ฉํ๋ ์ต์ [2]์ด ๋ฒ ํ๋ก ์ถ๊ฐ๋์ด ์์ผ๋ ์ด ์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ด ์๋๊ธฐ์ ์ ์ญ ์์คํ ๋ก์ผ์ผ์ ๋ณ๋๋ก ์ค์ ๋ ๋ก์ผ์ผ์ ๋ฐ๋ฅด๊ฒ ๋๋ค. Windows์์ ์ ๋์ฝ๋ Awareํ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก wchar_t ์ ๊ฐ์ ์์ด๋๋ฐ์ดํธ ํ์ (Windows ์์๋ UTF-16)์ ์ฌ์ฉํ๊ฒ ๋๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์์คํ ์ MBCS๋ฅผ ๋ฐ๋ฅด๊ฒ ๋์ด ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ ํ์ผ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ด ์ ๋ฌดํ๋ค. C์ fopen()์ ํ๋กํ ํ์ ์ const char* ํ์๋ง ์กด์ฌํ๊ณ ์ด๋ MBCS๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ก์ผ์ผ์์ ๋ฒ์ด๋๋ ํ์ผ๋ช ์ ์ ๊ทผํ ์ ์๋ค. MSVC์ ๊ฒฝ์ฐ ๋นํ์ค ํจ์์ธ const wchar_t ์ค๋ฒ๋ผ์ด๋๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋, ํ์ค์ด ์๋ ๊ด๊ณ๋ก libc๋ฅผ ์ฌ์ฉํ๋ GCC์ ๊ฒฝ์ฐ ์ด๋ฌํ ํ์ผ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ด CreateFileW()์ ๊ฐ์ OS ์์ฒด์ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ด์ธ์๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ์ง ์๋๋ค. ๋ํ ์ฝ์์ wprintf() ๋ํ ์ฝ์์ ๊ธฐ๋ณธ๊ฐ์ ์ญ์๋ ์์คํ ๋ก์ผ์ผ์ ๋ฐ๋ฅด๋ฉฐ ์ด ๋ํ ๋ก์ผ์ผ์ ๋ฒ์ด๋๋ ๋ฌธ์์ด์ ์ ์์ ์ธ ์ถ๋ ฅ์ ์ํด์๋ WriteConsoleW()๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋ ๋ฑ, Windows๊ฐ ์ฌ์ฉํ๋ MBCS์ ๋ฌธ์ ์ ์ด์ง MSYS ํ๊ฒฝ์ ๋ฌธ์ ์ ์ด ์๋๋ค.
Cygwin์ ๊ธฐ๋ฅ์ WSL๋ก ํ์คํ ๋์ฒด๋์์ง๋ง, MinGW๋ ์๋์ฐ ํ๊ฒฝ์ ๊ทธ๋๋ก ์ ์งํ๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ง ์ฌ์ฉํด์ผ ํ ๊ฒฝ์ฐ[3] ์ ์ฉํ๊ฒ ์ฐ์ผ ์ ์์ด ์ฌ์ ํ ํ์์ฑ์ด ์๋ ์ํํธ์จ์ด์ด๋ค.
3. ์ค์น[ํธ์ง]
- MSYS2(x86_64) ๋ค์ด๋ก๋ ํ MSYS2 ์ ธ์ pacman -Syu[5]๋ฅผ ์ ๋ ฅํ์ฌ ํจํค์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ์ด ์์คํ ์ ๋ฐ์ดํธ[6]
- ์ ธ์ pacman -S mingw-w64-x86_64-toolchain์ ์ ๋ ฅ
- ์ ธ์ pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-extra-cmake-modules๋ฅผ ์ ๋ ฅํ์ฌ CMake ์ค์น
- ํ๊ฒฝ๋ณ์ Path์ ~/mingw64/bin[7] ๊ฒฝ๋ก ์ถ๊ฐ
- ์๋์ฐ ๋ช ๋ น ํ๋กฌํํธ ์ฐฝ์์ gcc -v, g++ -v, mingw32-make -v[8], cmake -version, gdb -v๋ฅผ ๊ฐ๊ฐ ์ ๋ ฅํ์ฌ ์ ์ ์ค์น ์ฌ๋ถ ํ์ธ
- MSYS2: GPGME error: Invalid crypto engine ์๋ฌ ๋ฐ์ ์ #
- ์ ธ ์ข ๋ฃ ํ (MSYS2 ํด๋)/var/cache/pacman/pkg ๊ฒฝ๋ก์์ libgpgme, gnupg, pacman ํจํค์ง ํ์ผ(.pkg.tar) ์ญ์
- (MSYS2 ํด๋)/etc ๊ฒฝ๋ก์์ ํ ์คํธ ์๋ํฐ๋ก pacman.conf ํ์ผ์ ์ด๊ณ SigLevel = Never์ ์ฃผ์ ๊ธฐํธ(#) ์ ๊ฑฐ, SigLevel = Required DatabaseOptional ์ฃผ์ ์ฒ๋ฆฌ
- MSYS2 ์ ธ์ pacman -S libgpgme gnupg pacman ์ ๋ ฅ
- ๊ธฐํ ํ์ํ ํ์ผ ๋ชจ๋ ์ฌ์ค์น
- MSYS 1.0: Couldn't reserve space for cygwin's heap ์๋ฌ ๋ฐ์ ์ #
- ์ด๊ณณ์์ rebase.exe ํ์ผ์ ํด๋ฆญํ์ฌ ๋ค์ด๋ก๋(๋ค์ด๋ก๋ ์ ํ์ผ๋ช ์ bin-rebase.exe์์ rebase.exe๋ก ๋ณ๊ฒฝ)
- rebase.exe ํ์ผ์ (MSYS ํด๋)/MinGW/msys/1.0/bin ๊ฒฝ๋ก๋ก ์ด๋
- bin ํด๋์์ ๋ช ๋ น ํ๋กฌํํธ ์ฐฝ์ ์ด๊ณ rebase -b 0x30000000 msys-1.0.dll ์ ๋ ฅ
- TDM-GCC: MSYS ๋ฑ์ด ์๋ธ์์คํ ์ ์๋น์ ์์กดํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ์์ Windows ํ๊ฒฝ์์ ์ฌ์ฉ์ ๋ชฉ์ ์ผ๋ก ํ MinGW. ํ ํจํค์ง๋ก i686, AMD64 ๋ฐ์ด๋๋ฆฌ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
- MSYS ์์ด ๋ฐ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ ๊ฐ๋ฒผ์ด ํธ์ด์ง๋ง ์ ธ ์คํฌ๋ฆฝํธ๋ฅผ ๋๋ฆด ๋ฐฉ๋ฒ์ด ์์ผ๋ฏ๋ก autotools์ ๊ฐ์ ๊ตฌ์์ configurator์ ์ฌ์ฉํ๊ธฐ๋ ์ด๋ ต๋ค. Visual Studio Code์ฒ๋ผ ์์ฒด์ ์ธ ๋น๋ ํ๊ฒฝ์ด ์๋ ํ ์คํธ ์๋ํฐ๋ก ์ปดํ์ผ์ ํ๊ณ ์ ํ ๋ ๊ฐ์ฅ ๊ถ์ฅ๋๋ค. 2020๋ 3์, ๋ฌด๋ ค 5๋ ๋ง์ ์ ์ ๋ฐ์ดํธ๊ฐ ๋ฑ๋ก๋์๋ค.
4. ๊ธฐํ[ํธ์ง]
2017๋
๋ง ๊ธฐ์ค, LLVM/Clang๊ณผ์ ์ฑ๋ฅ ๋น๊ต์์ ์ฐ์๋ฅผ ์ฐจ์งํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ๋ค. # ์ต๊ทผ์๋ Clang๊ณผ ๊ฒฝ์์ ์ผ๋ก ์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ๊ณ ๋ฒ์ ๋ฒํธ๋ ๋์ด๊ณ ์๋ค. ์ฝ๋๋ฅผ ๋ถ์ํด ๋ฌธ์ ๊ฐ ๋ ๋งํ ๋ถ๋ถ์ ์ง๋จํด์ฃผ๋ ๊ธฐ๋ฅ ๋ฑ์ด ํฌ๊ฒ ๊ฐํ๋์๋ค.
์๋ฒ ๋๋ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋๋ ํฌ๋ก์ค ์ปดํ์ผ์ GCC๋ก ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
2007๋ ์ ์ถ์๋ 4.2.2 ๋ฒ์ ๋ถํฐ ๋ผ์ด์ ์ค๊ฐ GPLv3๋ก ๋ฐ๋์๊ณ , ์ด์ ๋ฐ๋ผ BSD ๋ผ์ด์ ์ค์ ํธํ์ด ๋ถ๊ฐ๋ฅํ๊ฒ ๋์ด FreeBSD ์ง์๊ณผ ์ ํ์ ๋๊ฒฝ์ค์ํ๊ณ LLVM/Clang์ผ๋ก ๊ฐ์ํ๋ค.[9]
์๋ฒ ๋๋ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋๋ ํฌ๋ก์ค ์ปดํ์ผ์ GCC๋ก ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
2007๋ ์ ์ถ์๋ 4.2.2 ๋ฒ์ ๋ถํฐ ๋ผ์ด์ ์ค๊ฐ GPLv3๋ก ๋ฐ๋์๊ณ , ์ด์ ๋ฐ๋ผ BSD ๋ผ์ด์ ์ค์ ํธํ์ด ๋ถ๊ฐ๋ฅํ๊ฒ ๋์ด FreeBSD ์ง์๊ณผ ์ ํ์ ๋๊ฒฝ์ค์ํ๊ณ LLVM/Clang์ผ๋ก ๊ฐ์ํ๋ค.[9]
[1] C++์ฉ GCC๋ gcc-c++ ํน์ g++๋ผ๊ณ ํ๋ค.
[2] Beta: ์ธ๊ณ ์ธ์ด ์ง์์ ์ํด Unicode UTF-8 ์ฌ์ฉ
[3] ์ฃผ๋ก ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๋ํ ๋.
[4] MSYS2 ํด๋์ maintenancetool.exe ํ์ผ์ ์คํํ๋ฉด MSYS2๋ฅผ ์ญ์ ํ ์ ์๋ค.
[5] ์์น ๋ฆฌ๋
์ค์ ํจํค์ง ๊ด๋ฆฌ์ ๋ช
๋ น์ด์ด๋ค.
[6] ๋ง์ง๋ง์ 'error: target not found: update'๋ผ๋ ์๋ฌ ๋ฉ์์ง๊ฐ ๋จ์ง๋ง ์ด๊ฑด ์
๋ฐ์ดํธ๊ฐ ๋ชจ๋ ๋๋ฌ๋ค๋ ์๋ฏธ๋ก ๋ฐ์๋ค์ด๋ฉด ๋๋ค.
[7] ์๋ํฐ์์ ์ปดํ์ผ๋ฌ ํด์ฒด์ธ ์ธํ
์ ์๊ตฌํ ๊ฒฝ์ฐ ์ด ๊ฒฝ๋ก๋ฅผ ์
๋ ฅํด ์ฃผ๋ฉด ๋๋ค.
[8] ๊ตฌ 32๋นํธ MinGW์ ํฌํจ๋ make๋ ์ ๋์ค ์์คํ
์ ๋ช
๋ น์ด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๋ฐ๋ฉด, MinGW-w64์ ํฌํจ๋ make๋ ๊ธฐ์กด์ ๊ฒ์ ๋ค์ดํฐ๋ธ ์๋์ฐ ํ๊ฒฝ์ ๋ง์ถฐ ์ฝ๊ฐ ๋ณํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฆ์ด mingw32-make๋ก ๋ฐ๋์๋ค.