์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ๊ณต๊ธ์์์ ์คํํ ์ ์๋ mipsel-linux-gnu-cpp-5 ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
cpp - C ์ ์ฒ๋ฆฌ๊ธฐ
๊ฐ์
cpp [-D๋งคํฌ๋ก[=๋ฐํ]...] [-U๋งคํฌ๋ก]
[-IDIR...] [- ์ธ์ฉDIR...]
[-W๊ฒฝ๊ณ ...]
[-M|-MM] [-mg] [-MF ํ์ผ ์ด๋ฆ]
[- MP] [-MQ ๋ชฉํ...]
[-์ฐ ๋ชฉํ...]
[-P] [-fno-์์ ๋๋ ํฐ๋ฆฌ]
[-x ์ธ์ด] [-ํ์ค=ํ์ค]
์ธํ์ผ ์์ํ์ผ
๊ฐ์ฅ ์ ์ฉํ ์ต์ ๋ง ์ฌ๊ธฐ์ ๋์ด๋ฉ๋๋ค. ๋๋จธ์ง๋ ์๋๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๊ธฐ์
C ์ ์ฒ๋ฆฌ๊ธฐ, ํํ CPP์ด๋ค ๋งคํฌ๋ก ํ๋ก์ธ์ ์๋์ผ๋ก ์ฌ์ฉ๋๋
C ์ปดํ์ผ๋ฌ๋ ์ปดํ์ผ ์ ์ ํ๋ก๊ทธ๋จ์ ๋ณํํฉ๋๋ค. ๋งคํฌ๋ก๋ผ๊ณ ํฉ๋๋ค
ํ๋ก์ธ์๋ฅผ ์ ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋งคํฌ๋ก, ๋ ๊ธด ์ฝ์ด
๊ตฌ์ฑ.
C ์ ์ฒ๋ฆฌ๊ธฐ๋ C, C++ ๋ฐ Objective-C ์์ค ์ฝ๋์์๋ง ์ฌ์ฉํ๋๋ก ๋์ด ์์ต๋๋ค.
๊ณผ๊ฑฐ์๋ ์ผ๋ฐ ํ ์คํธ ํ๋ก์ธ์๋ก ์ ์ฉ๋์์ต๋๋ค. ์ ๋ ฅํ๋ฉด ์ง์ํฉ๋๋ค.
C์ ์ดํ ๊ท์น์ ๋ฐ๋ฅด์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ํฌ์คํธ๋กํผ๋ ๋ค์๊ณผ ๊ฐ์ด ํด์๋ฉ๋๋ค.
๋ฌธ์ ์์์ ์์ ๋ถ๋ถ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ํ, ๋น์ ์ ๊ทธ๊ฒ์ ์์กดํ ์ ์์ต๋๋ค
C ๊ณ์ด ์ธ์ด์ ์ค์ํ์ง ์์ ์ ๋ ฅ์ ํน์ฑ์ ์ ์งํฉ๋๋ค.
Makefile์ด ์ ์ฒ๋ฆฌ๋๋ฉด ๋ชจ๋ ํ๋ ํญ์ด ์ ๊ฑฐ๋๊ณ Makefile์
์๋ํ์ง.
๊ทธ๋ ๊ธด ํ์ง๋ง, C๊ฐ ์๋ ๊ฒ์ cpp๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์ข ์ข ๋ฒ์ด๋ ์ ์์ต๋๋ค. ๊ธฐํ
Algol-ish ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ข ์ข ์์ ํฉ๋๋ค(Pascal, Ada ๋ฑ). ์ด์ ๋ธ๋ฆฌ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ฃผ์. -์ ํต์ ์ธ cpp ๋ชจ๋๋ ๋ ๋ง์ ๊ณต๋ฐฑ์ ๋ณด์กดํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ๋
ํ์ฉ์ ์ธ. C ๋๋ C++ ์คํ์ผ ์ฃผ์์ ์์ฑํ๋ฉด ๋ง์ ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค.
๋ชจ๊ตญ์ด ์ฃผ์ ๋์ ๋งคํฌ๋ก๋ฅผ ๋จ์ํ๊ฒ ์ ์งํฉ๋๋ค.
๊ฐ๋ฅํ ํ ์์ฑํ๋ ์ธ์ด์ ๋ง๋ ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
in. GNU ์ด์ ๋ธ๋ฌ์ ์ต์ ๋ฒ์ ์๋ ๋งคํฌ๋ก ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ๊ฐ์ฅ ๋์ ์์ค
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์๋ ์์ฒด ์กฐ๊ฑด๋ถ ์ปดํ์ผ ๋ฐ ํฌํจ ๋ฉ์ปค๋์ฆ์ด ์์ต๋๋ค. ๋ง์ฝ์
๋ค๋ฅธ ๋ชจ๋ ๋ฐฉ๋ฒ์ด ์คํจํ๋ฉด GNU M4์ ๊ฐ์ ์ง์ ํ ์ผ๋ฐ ํ ์คํธ ํ๋ก์ธ์๋ฅผ ์ฌ์ฉํด ๋ณด์ญ์์ค.
C ์ ์ฒ๋ฆฌ๊ธฐ๋ ๋ช ๊ฐ์ง ์ธ๋ถ ์ฌํญ์์ ๋ค๋ฆ ๋๋ค. ์ด ์ค๋ช ์๋ GNU C ์ ์ฒ๋ฆฌ๊ธฐ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
ISO ํ์ค C ๊ธฐ๋ฅ์ ์์ ์์ ์งํฉ์ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ณธ ๋ชจ๋์์ GNU๋
C ์ ์ฒ๋ฆฌ๊ธฐ๋ ํ์ค์์ ์๊ตฌํ๋ ๋ช ๊ฐ์ง ์์ ์ ์ํํ์ง ์์ต๋๋ค. ์ด๊ฒ๋ค์ ๊ธฐ๋ฅ์ ๋๋ค
๊ฑฐ์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ์๋ฏธ์ ๋๋ผ์ด ๋ณํ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
๊ธฐ๋ํ์ง ์๋ ํ๋ก๊ทธ๋จ. ์๊ฒฉํ ISO ํ์ค C๋ฅผ ์ป์ผ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
-ํ์ค=c90, -ํ์ค=c99 or -ํ์ค=c11 ์ต์ , ํ์ค ๋ฒ์ ์ ๋ฐ๋ผ
์ํ๋ค. ๋ชจ๋ ํ์ ์ง๋จ์ ๋ฐ์ผ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. -ํ๋จ ํฑ.
์ด ๋งค๋ด์ผ์ ISO ์ ์ฒ๋ฆฌ๊ธฐ์ ๋์์ ์ค๋ช ํฉ๋๋ค. ๋ถํ์ํ ๊ฒ์ ์ต์ํํ๊ธฐ ์ํด
ISO ์ ์ฒ๋ฆฌ๊ธฐ์ ๋์์ด ๊ธฐ์กด ๋ฐฉ์๊ณผ ์ถฉ๋ํ์ง ์๋ ์ฐจ์ด์
์๋ฏธ๋ก ์์ ์ ํต์ ์ธ ์ ์ฒ๋ฆฌ๊ธฐ๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋ํด์ผ ํฉ๋๋ค. ๋ค์ํ
์กด์ฌํ๋ ์ฐจ์ด์ ์ ์น์ ์ ์์ธํ ์ค๋ช ๋์ด ์์ต๋๋ค. ์ ํต์ ์ธ ๋ชจ๋.
๋ช ํ์ฑ์ ์ํด ๋ฌ๋ฆฌ ๋ช ์๋์ง ์๋ ํ CPP ์ด ์ค๋ช ์์์ GNU CPP๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ต์
C ์ ์ฒ๋ฆฌ๊ธฐ๋ ๋ ๊ฐ์ ํ์ผ ์ด๋ฆ์ ์ธ์๋ก ์์ํฉ๋๋ค. ์ธํ์ผ ๊ณผ ์์ํ์ผ. ๊ทธ๋งํผ
์ ์ฒ๋ฆฌ๊ธฐ ์ฝ๊ธฐ ์ธํ์ผ ์ง์ ํ๋ ๋ค๋ฅธ ํ์ผ๊ณผ ํจ๊ป #ํฌํจ. ๋ชจ๋
๊ฒฐํฉ๋ ์ ๋ ฅ ํ์ผ์ ์ํด ์์ฑ๋ ์ถ๋ ฅ์ ์์ํ์ผ.
์ด๋ ์ธํ์ผ or ์์ํ์ผ ์ -, ๋ค์๊ณผ ๊ฐ์ด ์ธํ์ผ ํ์ค ์ ๋ ฅ์์ ์ฝ๋ ๊ฒ์ ์๋ฏธํ๊ณ
as ์์ํ์ผ ํ์ค ์ถ๋ ฅ์ ์ฐ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ํ ๋ ํ์ผ ์ค ํ๋๊ฐ ์๋ต๋๋ฉด ๋ค์์ ์๋ฏธํฉ๋๋ค.
๋ง์น - ํด๋น ํ์ผ์ ๋ํด ์ง์ ๋์์ต๋๋ค.
๋ฌ๋ฆฌ ๋ช ์๋์ง ์๋ ํ ์ต์ ์ ๋ค์์ผ๋ก ๋๋ฉ๋๋ค. =, ์ธ์๋ฅผ ์ทจํ๋ ๋ชจ๋ ์ต์ ์
ํด๋น ์ธ์๊ฐ ์ต์ ๋ฐ๋ก ๋ค์ ๋ํ๋๊ฑฐ๋ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์์ด์ผ ํฉ๋๋ค.
์ต์ ๋ฐ ์ธ์: -์ดํธ ๊ณผ -I ํธ ๊ฐ์ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
๋ง์ ์ต์ ์๋ ์ฌ๋ฌ ๋ฌธ์ ์ด๋ฆ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฌ ๋จ์ผ ๋ฌธ์ ์ต์ ์ ์ง์ be
๊ทธ๋ฃนํ: -dM ~์๋ ๋งค์ฐ ๋ค๋ฆ ๋๋ค -d -M.
-D name
์ฌ์ ์ ์ name ๋งคํฌ๋ก๋ก ์ ์ 1.
-D name=์ ์
๋ด์ฉ ์ ์ ํ ํฐํ ๋ฐ ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ฒ์ญ ๋จ๊ณ XNUMX #๋ฐํ๋ค ์ง๋ น. ํนํ, ์ ์๋
ํฌํจ๋ ๊ฐํ ๋ฌธ์๋ก ์๋ฆฝ๋๋ค.
์ ๋๋ ์๊ณผ ์ ์ฌํ ํ๋ก๊ทธ๋จ์์ ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ ๋ค์์ด ํ์ํ ์ ์์ต๋๋ค.
์์ ์ธ์ฉ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ณต๋ฐฑ๊ณผ ๊ฐ์ ๋ฌธ์๋ฅผ ๋ณดํธํฉ๋๋ค.
์ ๊ตฌ๋ฌธ์ ์๋ฏธ.
๋ช ๋ น์ค์์ ํจ์์ ๊ฐ์ ๋งคํฌ๋ก๋ฅผ ์ ์ํ๋ ค๋ฉด ํด๋น ์ธ์๋ฅผ ์์ฑํ์ญ์์ค.
๋ฑํธ(์๋ ๊ฒฝ์ฐ) ์์ ๊ดํธ๊ฐ ์๋ ๋ชฉ๋ก. ๊ดํธ๋
๋๋ถ๋ถ์ ์์ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก ์ต์ ์ ์ธ์ฉํด์ผ ํฉ๋๋ค. ์ ํจ๊ป sh ๊ณผ CSH,
-NS'name(์ธ์...)=์ ์' ์๋ํฉ๋๋ค.
-D ๊ณผ -U ์ต์ ์ ๋ช ๋ น์ค์ ์ ๊ณต๋ ์์๋๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๋ชจ๋
-๋งคํฌ๋ก ํ์ผ ๊ณผ -ํฌํจ ํ์ผ ์ต์ ์ ๊ฒฐ๊ตญ ์ฒ๋ฆฌ๋ฉ๋๋ค -D ๊ณผ -U ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
-U name
์ด์ ์ ์ ์ทจ์ name, ๋ด์ฅ ๋๋ ์ ๊ณต -D ์ต์ ์ ์ ํํฉ๋๋ค.
-์ธ๋ฐํ
์์คํ ํน์ ๋๋ GCC ํน์ ๋งคํฌ๋ก๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํ์ง ๋ง์ญ์์ค. ๋ฏธ๋ฆฌ ์ ์๋ ํ์ค
๋งคํฌ๋ก๋ ์ ์๋ ์ํ๋ก ์ ์ง๋ฉ๋๋ค.
-I DIR
๋๋ ํ ๋ฆฌ ์ถ๊ฐ DIR ํค๋ ํ์ผ์ ๊ฒ์ํ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก์ผ๋ก ์ด๋ํฉ๋๋ค.
์ด๋ฆ์ด ์ง์ ๋ ๋๋ ํ ๋ฆฌ -I ํ์ค ์์คํ ์ด ๋๋ ํ ๋ฆฌ๋ฅผ ํฌํจํ๊ธฐ ์ ์ ๊ฒ์๋ฉ๋๋ค.
๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐ DIR ํ์ค ์์คํ ํฌํจ ๋๋ ํ ๋ฆฌ์ธ ๊ฒฝ์ฐ ์ต์ ์ด ๋ฌด์๋ฉ๋๋ค.
์์คํ ๋๋ ํ ๋ฆฌ์ ๋ํ ๊ธฐ๋ณธ ๊ฒ์ ์์์ ํน์ ์ฒ๋ฆฌ๊ฐ
์ ์์คํ ํค๋๋ ํจ๋ฐฐํ์ง ์์ต๋๋ค. ๋ง์ฝ์ DIR "="๋ก ์์ํ๋ฉด "="๊ฐ ๋ฉ๋๋ค.
sysroot ์ ๋์ฌ๋ก ๋์ฒด๋ฉ๋๋ค. ๋ณด๋ค --sysroot ๊ณผ -isysroot.
-o ํ์ผ
์ ์ถ๋ ฅ ์ฐ๊ธฐ ํ์ผ. ์ง์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ํ์ผ ๋ ๋ฒ์งธ ์ต์ ์ผ๋ก
์ธ์ CPP. GCC ์ต์ ์ด ์๋ ๋ ๋ฒ์งธ ์ธ์์ ๋ํด ๋ค๋ฅธ ํด์์ด ์๋ ๊ฒฝ์ฐ
๊ทธ๋์ ๋น์ ์ ์ฌ์ฉํด์ผํฉ๋๋ค -o ์ถ๋ ฅ ํ์ผ์ ์ง์ ํฉ๋๋ค.
-๋ฒฝ
์ผ๋ฐ ์ฝ๋์ ํ์ํ ๋ชจ๋ ์ ํ์ ๊ฒฝ๊ณ ๋ฅผ ์ผญ๋๋ค. ํ์ฌ ์ด
is -๋๊ธ, -์ ์, -W๋ฉํฐ๋ฌธ์ ๋ฐ ์ ์ ์น๊ฒฉ์ ๋ํ ๊ฒฝ๊ณ ๋ก ์ธํด
"#if" ํํ์ ๊ธฐํธ ๋ณ๊ฒฝ. ๋ง์ ์ ์ฒ๋ฆฌ๊ธฐ์ ๊ฒฝ๊ณ ๊ฐ
๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ ธ ์์ผ๋ฉฐ ์ ์ดํ ์ ์๋ ์ต์ ์ด ์์ต๋๋ค.
-๋๊ธ
-W๋๊ธ
์ฃผ์ ์์ ์ํ์ค ๋๋ง๋ค ๊ฒฝ๊ณ /* ์ ๋ํ๋ฉ๋๋ค /* ๋๊ธ ๋๋ ์ธ์ ๋ ์ง
๋ฐฑ์ฌ๋์-๊ฐํ ๋ฌธ์๊ฐ ๋ํ๋ฉ๋๋ค. // ๋ ผํ. (๋ ํํ ๋ชจ๋ ๋์ผํ ํจ๊ณผ๋ฅผ ๊ฐ์ง๋๋ค.)
-์ ์
์ฃผ์์ ์๋ ๋๋ถ๋ถ์ ์ผ์ค์๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋
์ด์ค์ผ์ดํ๋ ๊ฐํ ๋ฌธ์(??/ ์ค ๋์์) ํ ์ ์์ต๋๋ค.
์ฃผ์์ด ์์๋๊ฑฐ๋ ๋๋๋ ์์น๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ๋ฐ๋ผ์,
์ด์ค์ผ์ดํ๋ ์ค ๋ฐ๊ฟ์ ์ฃผ์ ๋ด๋ถ์ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํฉ๋๋ค.
์ด ์ต์ ์ -๋ฒฝ. ๋ฉด -๋ฒฝ ์ด ์ต์ ์ ์ฌ์ ํ โโํ์ฑํ๋์ด ์์ต๋๋ค.
trigraphs๊ฐ ํ์ฑํ๋์ง ์๋ ํ. ๊ฒฝ๊ณ ์์ด trigraph ๋ณํ์ ์ป์ผ๋ ค๋ฉด
๋ค๋ฅธ -๋ฒฝ ๊ฒฝ๊ณ , ์ฌ์ฉ -์ผ๊ฐํ -๋ฒฝ -Wno-trigraphs.
-์ ํต์ ์ธ
๊ธฐ์กด ๋ฐ ISO C์์ ๋ค๋ฅด๊ฒ ๋์ํ๋ ํน์ ๊ตฌ์ฑ์ ๋ํด ๊ฒฝ๊ณ ํฉ๋๋ค. ๋ํ
๊ธฐ์กด์ C์ ํด๋นํ๋ ํญ๋ชฉ์ด ์๊ณ ๋ฌธ์ ๊ฐ ์๋ ISO C ๊ตฌ์ฑ์ ๋ํด ๊ฒฝ๊ณ ํฉ๋๋ค.
ํผํด์ผ ํ ๊ตฌ์กฐ.
-๋ถ๋ฐํ
๋งคํฌ๋ก๊ฐ ์๋ ์๋ณ์๊ฐ #๋ง์ฝ ์ง์๋ฌธ
๋ฐ์ ํ์ ๋. ์ด๋ฌํ ์๋ณ์๋ XNUMX์ผ๋ก ๋์ฒด๋ฉ๋๋ค.
-์ฌ์ฉํ์ง ์์ ๋งคํฌ๋ก
์ฌ์ฉํ์ง ์๋ ๊ธฐ๋ณธ ํ์ผ์ ์ ์๋ ๋งคํฌ๋ก์ ๋ํด ๊ฒฝ๊ณ ํฉ๋๋ค. ๋งคํฌ๋ก๋ ์ต์ํ ๊ทธ๋ ๋ค๋ฉด
์ ์ด๋ ํ ๋ฒ์ ํ์ฅ๋๊ฑฐ๋ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ ์คํธํ์ต๋๋ค. ์ ์ฒ๋ฆฌ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๊ฒฝ๊ณ ํฉ๋๋ค.
๋งคํฌ๋ก๊ฐ ์ฌ์ ์๋๊ฑฐ๋ ์ ์๋์ง ์์ ์์ ์ ์ฌ์ฉ๋์ง ์์์ต๋๋ค.
๊ธฐ๋ณธ ์ ๊ณต ๋งคํฌ๋ก, ๋ช ๋ น์ค์ ์ ์๋ ๋งคํฌ๋ก ๋ฐ ์ ์ ์๋ ๋งคํฌ๋ก๋ ๋ค์์ ํฌํจํฉ๋๋ค.
ํ์ผ์ ๋ํด ๊ฒฝ๊ณ ํ์ง ์์ต๋๋ค.
์ฐธ๊ณ : ๋งคํฌ๋ก๊ฐ ์ค์ ๋ก ์ฌ์ฉ๋์ง๋ง ๊ฑด๋๋ด ์กฐ๊ฑด๋ถ ๋ธ๋ก์์๋ง ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ
CPP๋ ์ด๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฒ์ผ๋ก ๋ณด๊ณ ํฉ๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ํผํ๊ธฐ ์ํด ๋ค์์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋งคํฌ๋ก ์ ์์ ๋ฒ์๋ฅผ ๊ฑด๋๋ด ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ผ๋ก ์ด๋ํฉ๋๋ค.
๋ธ๋ก. ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋๋ฏธ ์ฌ์ฉ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
#the_macro_causing_the_warning์ ์ ์ํ ๊ฒฝ์ฐ
#endif
-์ฌ๋ํ ๋ผ๋ฒจ
์ธ์ ๋ ์ง ๊ฒฝ๊ณ #๊ทธ๋ฐ์ ๋๋ #endif ํ ์คํธ๊ฐ ๋ค๋ฐ๋ฆ ๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์์์ ๋ฐ์ํฉ๋๋ค.
ํ์์ ์ฝ๋
#๋ง์ฝ FOO๋ผ๋ฉด
...
#else ํธ
...
#endif foo
๋ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ "FOO"๋ ์ฃผ์์ ์์ด์ผ ํ์ง๋ง ์ด์ ํ๋ก๊ทธ๋จ์๋ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ด ๊ฒฝ๊ณ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ ธ ์์ต๋๋ค.
-์๋ฌ
๋ชจ๋ ๊ฒฝ๊ณ ๋ฅผ ํ๋ ์ค๋ฅ๋ก ๋ง๋ญ๋๋ค. ๊ฒฝ๊ณ ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ์์ค ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฑฐ๋ถ๋์์ต๋๋ค.
-Wsystem ํค๋
์์คํ ํค๋์ ์ฝ๋์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ๋ฐํํฉ๋๋ค. ์ด๊ฒ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ฐพ๋ ๋ฐ ๋์์ด ๋์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ์์ ์ ์ฝ๋์ ์๋ ๋ฒ๊ทธ๋ฅผ ์ต์ ํฉ๋๋ค. ์์คํ ์ ๋ํ ์ฑ ์์ด ์๋ ๊ฒฝ์ฐ
๋์๊ด, ๋น์ ์ ๊ทธ๋ค์๋ณด๊ณ ์ถ์ ์ ์์ต๋๋ค.
-w GNU CPP๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐํํ๋ ๊ฒฝ๊ณ ๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ์ง ์์ต๋๋ค.
-ํ๋จ ํฑ
C ํ์ค์ ๋์ด๋ ๋ชจ๋ ํ์ ์ง๋จ์ ๋ฐํํ์ญ์์ค. ๊ทธ๋ค ์ค ์ผ๋ถ๋ ๋จ์ ์์ต๋๋ค
๋ฌดํดํ ์ฝ๋์์ ์์ฃผ ํธ๋ฆฌ๊ฑฐ๋๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ์ ์ผ๋ก out.
- ํํ์ ์ค๋ฅ
๋ชจ๋ ํ์ ์ง๋จ์ ์คํํ๊ณ ๋ชจ๋ ํ์ ์ง๋จ์ ์ค๋ฅ๋ก ๋ง๋ญ๋๋ค.
์ฌ๊ธฐ์๋ GCC๊ฐ ๋ค์ ์์ด ๋ฐํํ๋ ํ์ ์ง๋จ์ด ํฌํจ๋ฉ๋๋ค. -ํ๋จ ํฑ ๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ทจ๊ธํฉ๋๋ค.
๊ฒฝ๊ณ .
-M ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ๋์ ์ ์ ํฉํ ๊ท์น์ ์ถ๋ ฅ ํ์ธ
๊ธฐ๋ณธ ์์ค ํ์ผ์ ์ข ์์ฑ์ ์ค๋ช ํฉ๋๋ค. ์ ์ฒ๋ฆฌ๊ธฐ๋ ํ๋๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
ํ์ธ ํด๋น ์์ค ํ์ผ์ ๋ํ ๊ฐ์ฒด ํ์ผ ์ด๋ฆ, ์ฝ๋ก ๋ฐ ์ด๋ฆ์ ํฌํจํ๋ ๊ท์น
๋ค์์์ ์ค๋ ํ์ผ์ ํฌํจํ์ฌ ํฌํจ๋ ๋ชจ๋ ํ์ผ์ -ํฌํจ or -๋งคํฌ๋ก ๋ช ๋ น-
๋ผ์ธ ์ต์ .
๋ช ์์ ์ผ๋ก ์ง์ ํ์ง ์๋ ํ( -์ฐ or -MQ), ๊ฐ์ฒด ํ์ผ ์ด๋ฆ์
์ ๋ฏธ์ฌ๊ฐ ๊ฐ์ฒด ํ์ผ ์ ๋ฏธ์ฌ๋ก ๋์ฒด๋๊ณ ์์์ ์ ๋ฏธ์ฌ๊ฐ ์๋ ์์ค ํ์ผ์ ์ด๋ฆ
์ ํ ๋๋ ํ ๋ฆฌ ๋ถ๋ถ์ด ์ ๊ฑฐ๋์์ต๋๋ค. ํฌํจ๋ ํ์ผ์ด ๋ง์ ๊ฒฝ์ฐ ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ค๋ก ๋ถํ \- ๊ฐํ. ๊ท์น์๋ ๋ช ๋ น์ด ์์ต๋๋ค.
์ด ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ ์ ์ฒ๋ฆฌ๊ธฐ์ ๋๋ฒ๊ทธ ์ถ๋ ฅ์ ์ต์ ํ์ง ์์ต๋๋ค. -dM. ํผํ๋ ค๋ฉด
์ด๋ฌํ ๋๋ฒ๊ทธ ์ถ๋ ฅ์ ์ข ์์ฑ ๊ท์น๊ณผ ํผํฉํ์ฌ ๋ช ์์ ์ผ๋ก ์ง์ ํด์ผ ํฉ๋๋ค.
์ข ์์ฑ ์ถ๋ ฅ ํ์ผ -MF, ๋๋ ๋ค์๊ณผ ๊ฐ์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ญ์์ค.
DEPENDENCIES_OUTPUT. ๋๋ฒ๊ทธ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ๋ฐ ์ถ๋ ฅ ์คํธ๋ฆผ์ผ๋ก ๊ณ์ ์ ์ก๋ฉ๋๋ค.
์ ์์ ๋๋ค.
ํต๊ณผ -M ์ด์ ์์๊ฒ ์๋ฏธ -E, ๊ทธ๋ฆฌ๊ณ ์์์ ์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ์ต์ ํฉ๋๋ค. -w.
-MM ์ฒ๋ผ -M ๊ทธ๋ฌ๋ ์์คํ ํค๋ ๋๋ ํ ๋ฆฌ์ ์๋ ํค๋ ํ์ผ์ ์ธ๊ธํ์ง ๋ง์ญ์์ค.
์ด๋ฌํ ํค๋์์ ์ง์ ๋๋ ๊ฐ์ ์ ์ผ๋ก ํฌํจ๋ ํค๋ ํ์ผ๋ ์์ต๋๋ค.
์ด๊ฒ์ ๊บพ์ ๊ดํธ ๋๋ ํฐ ๋ฐ์ดํ๋ฅผ ์ ํํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. #ํฌํจ
์ง์๋ฌธ ์์ฒด๋ ํด๋น ํค๋๊ฐ ๋ค์์ ๋ํ๋ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ์ง ์์ต๋๋ค. -MM
์์กด์ฑ ์ถ๋ ฅ. ์ด๊ฒ์ GCC ๋ฒ์ 3.0 ๋ฐ
์ผ์ฐ์ด.
-MF ํ์ผ
ํจ๊ป ์ฌ์ฉํ ๋ -M or -MM, ์ข ์์ฑ์ ์ธ ํ์ผ์ ์ง์ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ -MF
์ค์์น๋ ์ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์ ์กํ์ ๋์ผํ ์์น๋ก ๊ท์น์ ๋ณด๋ ๋๋ค.
์ ์ฒ๋ฆฌ๋ ์ถ๋ ฅ.
๋๋ผ์ด๋ฒ ์ต์ ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ -MD or -MMD, -MF ๊ธฐ๋ณธ ์ข ์์ฑ์ ์ฌ์ ์ํฉ๋๋ค.
๊ฒฐ๊ณผ๋ฌผ ํ์ผ.
-mg ๋ค์๊ณผ ๊ฐ์ ์ต์ ๊ณผ ํจ๊ป -M ์์กด์ฑ ์์ฑ ์์ฒญ, -mg ๊ฐ์ ํ๋ค
๋๋ฝ๋ ํค๋ ํ์ผ์ ์์ฑ๋ ํ์ผ์ด๋ฉฐ ์ด๋ฅผ ์ ์ธํ๊ณ ์ข ์์ฑ ๋ชฉ๋ก์ ์ถ๊ฐํฉ๋๋ค.
์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค. ์ข ์์ฑ ํ์ผ ์ด๋ฆ์ "#include"์์ ์ง์ ๊ฐ์ ธ์ต๋๋ค.
๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ์ง์๋ฌธ. -mg ๋ํ ์ ์ฒ๋ฆฌ๋ ์ถ๋ ฅ์ ์ต์ ํฉ๋๋ค.
๋๋ฝ๋ ํค๋ ํ์ผ์ ์ด๊ฒ์ ์ธ๋ชจ์๊ฒ ๋ง๋ญ๋๋ค.
์ด ๊ธฐ๋ฅ์ makefile์ ์๋ ์ ๋ฐ์ดํธ์ ์ฌ์ฉ๋ฉ๋๋ค.
- MP ์ด ์ต์ ์ CPP๊ฐ ๋ค์ ์ด์ธ์ ๊ฐ ์ข ์์ฑ์ ๋ํด ๊ฐ์ง ๋์์ ์ถ๊ฐํ๋๋ก ์ง์ํฉ๋๋ค.
๋ฉ์ธ ํ์ผ์ ์์ฑํ์ฌ ๊ฐ๊ฐ์ด ์๋ฌด๊ฒ๋ ์์กดํ์ง ์๊ฒ ํฉ๋๋ค. ์ด ๋๋ฏธ ๊ท์น์ ์ค๋ฅ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
ํ์ธ ์ ๋ฐ์ดํธํ์ง ์๊ณ ํค๋ ํ์ผ์ ์ ๊ฑฐํ๋ฉด ์ ๊ณต Makefile ์ผ์นํฉ๋๋ค.
๋ค์์ ์ผ๋ฐ์ ์ธ ์ถ๋ ฅ์ ๋๋ค.
test.o: test.c test.h
test.h :
-์ฐ ๋ชฉํ
์ข ์์ฑ ์์ฑ์์ ๋ด๋ณด๋ธ ๊ท์น์ ๋์์ ๋ณ๊ฒฝํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก CPP๋
๊ธฐ๋ณธ ์ ๋ ฅ ํ์ผ์ ์ด๋ฆ, ๋ชจ๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์ฑ ์์ ๋ฐ ํ์ผ ์ ๋ฏธ์ฌ ์ญ์
๋ฑ .c, ํ๋ซํผ์ ์ผ๋ฐ์ ์ธ ๊ฐ์ฒด ์ ๋ฏธ์ฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ชฉํ์ ๋๋ค.
An -์ฐ ์ต์ ์ ๋์์ ์ ํํ ์ง์ ํ ๋ฌธ์์ด๋ก ์ค์ ํฉ๋๋ค. ๋ค๊ฐ ์ํ๋ค๋ฉด
์ฌ๋ฌ ๋์์ ๋จ์ผ ์ธ์๋ก ์ง์ ํ ์ ์์ต๋๋ค. -์ฐ, ๋๋ ์ฌ๋ฌ
-์ฐ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
์๋ฅผ ๋ค์ด, -์ฐ '$(objpfx)foo.o' ์ค ์๋
$(objpfx)foo.o: foo.c
-MQ ๋ชฉํ
๊ณผ ๋์ผ -์ฐ, ๊ทธ๋ฌ๋ Make์ ํน๋ณํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ธ์ฉํฉ๋๋ค.
-MQ '$(objpfx)foo.o' ์ ๊ณต
$$(objpfx)foo.o: foo.c
๊ธฐ๋ณธ ๋์์ ๋ค์๊ณผ ๊ฐ์ด ์ ๊ณต๋ ๊ฒ์ฒ๋ผ ์๋์ผ๋ก ์ธ์ฉ๋ฉ๋๋ค. -MQ.
-MD -MD ์ ํด๋นํ๋ -M -MF ํ์ผ์ ์ธํ๊ณ -E ์์๋์ง ์์ต๋๋ค. ์ด์ ์ฌ
๊ฒฐ์ ํ๋ค ํ์ผ ์ฌ๋ถ์ ๋ฐ๋ผ -o ์ต์ ์ด ์ฃผ์ด์ง๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋๋ผ์ด๋ฒ๋
์ธ์์ด์ง๋ง ์ ๋ฏธ์ฌ .d, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ๋ ฅ ํ์ผ์ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
๋ชจ๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์ฑ ์์์ ์ ๋ฏธ์ฌ๋ฅผ ์ ๊ฑฐํ๊ณ .d ์ ๋ฏธ์ฌ.
If -MD ์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค -E, ์ด๋ค -o ์ค์์น๋ ๋ค์์ ์ง์ ํ๋ ๊ฒ์ผ๋ก ์ดํด๋ฉ๋๋ค.
์ข ์์ฑ ์ถ๋ ฅ ํ์ผ์ด์ง๋ง ์์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ -E, ๊ฐ๊ฐ -o ์ง์ ํ๋ ๊ฒ์ผ๋ก ์ดํด๋๋ค
๋์ ๊ฐ์ฒด ํ์ผ.
์ดํ -E ์์๋์ง ์์ผ๋ฉฐ, -MD ์ข ์์ฑ ์ถ๋ ฅ ํ์ผ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ปดํ์ผ ๊ณผ์ ์ ๋ถ์์ฉ
-MMD
์ฒ๋ผ -MD ์์คํ ํค๋ ํ์ผ์ด ์๋ ์ฌ์ฉ์ ํค๋ ํ์ผ๋ง ์ธ๊ธํ๋ ๊ฒ์ ์ ์ธํ๊ณ .
-x c
-x C ++
-x ๋ชฉ์ -c
-x cpp ์ด์ ๋ธ๋ฌ
์์ค ์ธ์ด(C, C++, Objective-C ๋๋ ์ด์ ๋ธ๋ฆฌ)๋ฅผ ์ง์ ํฉ๋๋ค. ์ด๊ฑด ํ ๋ง์ด ์๋ค
ํ์ค ์ค์ ๋๋ ํ์ฅ ์ด๋ค ๊ธฐ๋ณธ ๊ตฌ๋ฌธ์
์์ํ๋ค. ์ด ์ต์ ์ค ์๋ฌด ๊ฒ๋ ์ ๊ณตํ์ง ์์ผ๋ฉด cpp๋ ๋ค์์์ ์ธ์ด๋ฅผ ์ถ๋ก ํฉ๋๋ค.
์์ค ํ์ผ์ ํ์ฅ์: .c, .CC, .m๋ฐ .S. ๋ช ๊ฐ์ง ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ํ์ฅ
C++ ๋ฐ ์ด์ ๋ธ๋ฆฌ๋ ์ธ์๋ฉ๋๋ค. cpp๊ฐ ํ์ฅ์๋ฅผ ์ธ์ํ์ง ๋ชปํ๋ฉด
ํ์ผ์ C๋ก ์ทจ๊ธํฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ชจ๋์ ๋๋ค.
์ฐธ๊ณ : ์ด์ ๋ฒ์ ์ cpp๊ฐ ํ์ฉ๋จ -๋ ๋ ๋ค ์ ํํ ์ต์
์ธ์ด ๋ฐ ํ์ค ์ค์ ์์ค. ์ด ์ต์ ์ ์ ๊ฑฐ๋์์ต๋๋ค.
์ ์ถฉ๋ํ๋ค -l ์ต์ ์ ์ ํํฉ๋๋ค.
-ํ์ค=ํ์ค
-์์
์ฝ๋๊ฐ ์ค์ํด์ผ ํ๋ ํ์ค์ ์ง์ ํฉ๋๋ค. ํ์ฌ CPP๋ C์ ๋ํด ์๊ณ ์์ต๋๋ค.
๋ฐ C++ ํ์ค; ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ฏธ๋์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค.
ํ์ค ๋ค์ ์ค ํ๋์ผ ์ ์์ต๋๋ค.
"c90"
"c89"
"iso9899:1990"
1990๋ ๋ถํฐ ISO C ํ์ค์ ๋๋ค. c90 ์ด ๋ฒ์ ์ ๊ด๋ก์ ์ธ ์ฝ์ด์ ๋๋ค.
ํ์ค.
ใ -์์ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. -ํ์ค=c90.
"iso9899:199409"
1990๋ ์ ๊ฐ์ ๋ 1994๋ C ํ์ค.
"iso9899:1999"
"c99"
"iso9899:199x"
"c9x"
1999๋ XNUMX์์ ์ถํ๋ ๊ฐ์ ๋ ISO C ํ์ค.
C9X๋ก ์๋ ค์ก์ต๋๋ค.
"iso9899:2011"
"c11"
"c1x"
2011๋ XNUMX์์ ์ถํ๋ ๊ฐ์ ๋ ISO C ํ์ค.
C1X๋ก ์๋ ค์ก์ต๋๋ค.
"๊ทธ๋90"
"๊ทธ๋89"
1990 C ํ์ค๊ณผ GNU ํ์ฅ. ์ด๊ฒ์ด ๊ธฐ๋ณธ๊ฐ์ ๋๋ค.
"๊ทธ๋99"
"gnu9x"
1999 C ํ์ค๊ณผ GNU ํ์ฅ.
"๊ทธ๋11"
"gnu1x"
2011 C ํ์ค๊ณผ GNU ํ์ฅ.
"C++98"
1998 ISO C++ ํ์ค ๋ฐ ์์ ์ฌํญ.
"๊ทธ๋++98"
๊ฐ์ -std = c ++ 98 ํ๋ฌ์ค GNU ํ์ฅ. ์ด๊ฒ์ C++ ์ฝ๋์ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค.
-๋๋- ํฌํจ ๊ฒฝ๋ก๋ฅผ ๋ถํ ํฉ๋๋ค. ๋ค์์ผ๋ก ์ง์ ๋ ๋ชจ๋ ๋๋ ํ ๋ฆฌ -I ์ ์ ์ต์ -๋๋- are
"#include "๋ก ์์ฒญ๋ ํค๋๋ง ๊ฒ์ํฉ๋๋ค.ํ์ผ""; ๊ทธ๋ค์ ๊ฒ์๋์ง ์์ต๋๋ค
"#ํฌํจํ๋คํ์ผ>". ์ถ๊ฐ ๋๋ ํ ๋ฆฌ๊ฐ ์ง์ ๋ ๊ฒฝ์ฐ -I ์ดํ์ ์ต์
-๋๋-, ํด๋น ๋๋ ํ ๋ฆฌ๋ ๋ชจ๋ ๊ฒ์๋ฉ๋๋ค. #ํฌํจ ๊ฐ์ด๋ ๋ผ์ธ.
๋ํ, -๋๋- ํ์ฌ ํ์ผ ๋๋ ํ ๋ฆฌ์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒ์ ๊ธ์งํฉ๋๋ค.
"#include "์ ๋ํ ์ฒซ ๋ฒ์งธ ๊ฒ์ ๋๋ ํ ๋ฆฌํ์ผ"".
์ด ์ต์ ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
-Nostdinc
ํค๋ ํ์ผ์ ๋ํ ํ์ค ์์คํ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฒ์ํ์ง ๋ง์ญ์์ค. ๋๋ ํ ๋ฆฌ๋ง
๋น์ ์ ๋ก ์ง์ ํ์ต๋๋ค -I ์ต์ (๋ฐ ํ์ฌ ํ์ผ์ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ
ํด๋น)์ด ๊ฒ์๋ฉ๋๋ค.
-nostdinc++
C++ ๊ด๋ จ ํ์ค ๋๋ ํ ๋ฆฌ์์ ํค๋ ํ์ผ์ ๊ฒ์ํ์ง ๋ง์ญ์์ค.
๋ค๋ฅธ ํ์ค ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฒ์ํ์ญ์์ค. (์ด ์ต์ ์ C++๋ฅผ ๋น๋ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
๋์๊ด.)
-ํฌํจ ํ์ผ
๋ฐฉ๋ฒ ํ์ผ "#include "file""์ด ๊ธฐ๋ณธ ์์ค์ ์ฒซ ๋ฒ์งธ ์ค์ ๋ํ๋ ๊ฒ์ฒ๋ผ
ํ์ผ. ๊ทธ๋ฌ๋ ๊ฒ์ํ ์ฒซ ๋ฒ์งธ ๋๋ ํ ๋ฆฌ๋ ํ์ผ ์ ์ฒ๋ฆฌ๊ธฐ์ ์๋์ ๋๋ค
์๋ฐฐ ๊ท์น์ ๋ฅผ ๋ฐ์์ผ ํ๋ ๋ฏธ๊ตญ ์ฌํ์ of ๊ธฐ๋ณธ ์์ค ํ์ผ์ด ํฌํจ๋ ๋๋ ํ ๋ฆฌ. ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ
๊ฑฐ๊ธฐ์์ "#include "..."" ๊ฒ์ ์ฒด์ธ์ ๋๋จธ์ง ๋ถ๋ถ์์ ๋ค์๊ณผ ๊ฐ์ด ๊ฒ์๋ฉ๋๋ค.
์ ์์ ๋๋ค.
์ฌ๋ฌ ๊ฒฝ์ฐ -ํฌํจ ์ต์ ์ด ์ฃผ์ด์ง๋ฉด ํ์ผ์ ์์๋๋ก ํฌํจ๋ฉ๋๋ค.
๋ช ๋ น์ค์ ๋ํ๋ฉ๋๋ค.
-๋งคํฌ๋ก ํ์ผ
์ ํํ ๊ฐ์ -ํฌํจ, ์ค์บ์ ์ํด ์์ฑ๋ ๋ชจ๋ ์ถ๋ ฅ์ ์ ์ธ ํ์ผ ๋์ ธ์ง๋ค
๋จ์ด์ ธ์๋. ์ ์ํ ๋งคํฌ๋ก๋ ์ ์๋ ์ํ๋ก ์ ์ง๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ชจ๋ ๋งคํฌ๋ก๋ฅผ ํ๋ํ ์ ์์ต๋๋ค.
์ ์ธ์ ์ฒ๋ฆฌํ์ง ์๊ณ ํค๋์์.
์ ์ํด ์ง์ ๋ ๋ชจ๋ ํ์ผ -๋งคํฌ๋ก ์ ์ํด ์ง์ ๋ ๋ชจ๋ ํ์ผ๋ณด๋ค ๋จผ์ ์ฒ๋ฆฌ๋ฉ๋๋ค. -ํฌํจ.
-idirafter DIR
๊ฒ์ DIR ํค๋ ํ์ผ์ ๊ฒฝ์ฐ ์๊ฐ ๋ด์ ๋ก ์ง์ ๋ ๋ชจ๋ ๋๋ ํ ๋ฆฌ -I ๊ทธ๋ฆฌ๊ณ
ํ์ค ์์คํ ๋๋ ํ ๋ฆฌ๊ฐ ์์ง๋์์ต๋๋ค. DIR ๋ค์์ ํฌํจํ๋ ์์คํ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
์๋ฐฐ ๊ท์น์. ๋ง์ฝ์ DIR "="๋ก ์์ํ๋ฉด "="๋ sysroot๋ก ๋์ฒด๋ฉ๋๋ค.
์ ๋์ฌ; ๋ณด๋ค --sysroot ๊ณผ -isysroot.
-ipprefix ์ ๋์ฌ
์ง์ ์ ๋์ฌ ํ์ ์ ๋์ฌ๋ก -iwith ์ ๋์ฌ ์ต์ . ์ ๋์ด์ ๊ฒฝ์ฐ
๋๋ ํ ๋ฆฌ๋ฅผ ๋ํ๋ด๋ฏ๋ก ์ต์ข /.
-iwith ์ ๋์ฌ DIR
-์์ ์ ๋์ฌ๊ฐ ์๋ ๊ฒฝ์ฐ DIR
์ถ๊ฐ DIR ์ด์ ์ ์ง์ ๋ ์ ๋์ฌ์ -ipprefix, ๊ฒฐ๊ณผ๋ฅผ ์ถ๊ฐํ์ญ์์ค
๋๋ ํ ๋ฆฌ๋ฅผ ํฌํจ ๊ฒ์ ๊ฒฝ๋ก๋ก ์ด๋ํฉ๋๋ค. -์์ ์ ๋์ฌ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฐ์ ์ฅ์์ ๋๋ค. -I
์ผ ๊ฒ์ด๋ค; -iwith ์ ๋์ฌ ๊ทธ๊ฒ์ ์ด๋์ ๋๋ค -idirafter ํ ๊ฒ์ด๋ค.
-isysroot DIR
์ด ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. --sysroot ์ต์ ์ด์ง๋ง ํค๋ ํ์ผ์๋ง ์ ์ฉ๋ฉ๋๋ค(์์ธ
ํค๋ ํ์ผ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋์ ์ ์ฉ๋๋ Darwin ๋์). ์ฐธ์กฐ
--sysroot ์์ธํ ๋ด์ฉ์ ์ต์ ์ ์ฐธ์กฐํ์ญ์์ค.
-imultilib DIR
DIR ๋์๋ณ C++ ํค๋๋ฅผ ํฌํจํ๋ ๋๋ ํ ๋ฆฌ์ ํ์ ๋๋ ํ ๋ฆฌ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
-์์ด์์คํ DIR
๊ฒ์ DIR ํค๋ ํ์ผ์ ๊ฒฝ์ฐ ๋ค์์ผ๋ก ์ง์ ๋ ๋ชจ๋ ๋๋ ํ ๋ฆฌ ๋ค์ -I ๊ทธ๋ฌ๋ ์ ์
ํ์ค ์์คํ ๋๋ ํ ๋ฆฌ. ์์คํ ๋๋ ํ ๋ฆฌ๋ก ํ์ํ์ฌ ๋์ผํ๊ฒ ๊ฐ์ ธ์ต๋๋ค.
ํ์ค ์์คํ ๋๋ ํ ๋ฆฌ์ ์ ์ฉ๋๋ ํน๋ณํ ์ทจ๊ธ.
If DIR "="๋ก ์์ํ๋ฉด "="๋ sysroot ์ ๋์ฌ๋ก ๋์ฒด๋ฉ๋๋ค. ๋ณด๋ค
--sysroot ๊ณผ -isysroot.
- ์ธ์ฉ DIR
๊ฒ์ DIR "#include "๋ก ์์ฒญ๋ ํค๋ ํ์ผ์๋ง ํด๋นํ์ผ""; ๊ทธ๋ค์ ์๋๋ค
"#ํฌํจ"์ ๊ฒ์ํ์ต๋๋ค.ํ์ผ>", ๋ค์์ ์ํด ์ง์ ๋ ๋ชจ๋ ๋๋ ํ ๋ฆฌ ์์ -I ๊ทธ๋ฆฌ๊ณ ์ ์
ํ์ค ์์คํ ๋๋ ํ ๋ฆฌ.
If DIR "="๋ก ์์ํ๋ฉด "="๋ sysroot ์ ๋์ฌ๋ก ๋์ฒด๋ฉ๋๋ค. ๋ณด๋ค
--sysroot ๊ณผ -isysroot.
-f ์ง์๋ฌธ ์ ์ฉ
์ ์ฒ๋ฆฌํ ๋ ์ง์๋ฌธ์ ์ฒ๋ฆฌํ๋ ๋งคํฌ๋ก๋ฅผ ํ์ฅํ์ง ๋ง์ญ์์ค.
์ต์ ์ ๋์์ -E ๊ณผ -f์ ์ฒ๋ฆฌ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
์ -E, ์ ์ฒ๋ฆฌ๋ "#define"๊ณผ ๊ฐ์ ์ง์๋ฌธ ์ฒ๋ฆฌ๋ก ์ ํ๋ฉ๋๋ค.
"#ifdef" ๋ฐ "#์ค๋ฅ". ๋งคํฌ๋ก ํ์ฅ ๋ฐ
trigraph ๋ณํ์ ์ํ๋์ง ์์ต๋๋ค. ๋ํ, -dD ์ต์ ์ ์์์ ์ผ๋ก
์ฌ์ฉํ๋๋ก ์ค์ ๋์์ต๋๋ค.
์ -f์ ์ฒ๋ฆฌ, ๋ช ๋ น์ค ๋ฐ ๋๋ถ๋ถ์ ๋ด์ฅ ๋งคํฌ๋ก์ ์ฌ์ ์ ์๋
์ฅ์ ๊ฐ์๋. ์ปจํ ์คํธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ "__LINE__"๊ณผ ๊ฐ์ ๋งคํฌ๋ก๊ฐ ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ณดํต. ์ด๋ ๊ฒ ํ๋ฉด ์ด์ ์ "-E"๋ก ์ฌ์ ์ฒ๋ฆฌ๋ ํ์ผ์ ์ปดํ์ผํ ์ ์์ต๋๋ค.
-f์ง์์ด ์ ์ฉ".
๋์ด ํจ๊ป -E ๊ณผ -f์ ์ฒ๋ฆฌ, ๊ท์น -f์ ์ฒ๋ฆฌ ์ฐ์ ๊ถ์ ๊ฐ์ง๋ค. ์ด๊ฒ
์ด์ ์ "-E"๋ก ์ ์ฒ๋ฆฌ๋ ํ์ผ์ ์ ์ฒด ์ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
-f์ง์์ด ์ ์ฉ".
-fdollars-in-์๋ณ์
์๋ฝ $ ์๋ณ์์.
-fextended-์๋ณ์
์๋ณ์์ ๋ฒ์ฉ ๋ฌธ์ ์ด๋ฆ์ ํ์ฉํฉ๋๋ค. ์ด ์ต์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค.
C99(๋ฐ ์ดํ์ C ํ์ค ๋ฒ์ ) ๋ฐ C++์ฉ.
-fno-ํ์ค ์์คํ ํค๋
์ ์ฒ๋ฆฌํ ๋ ์ ๊ทํ๋ก ์์คํ ํค๋ ๊ฒฝ๋ก๋ฅผ ์ค์ด์ง ๋ง์ญ์์ค.
-f์ ์ฒ๋ฆฌ
์ ๋ ฅ ํ์ผ์ด ์ด๋ฏธ ์ ์ฒ๋ฆฌ๋์์์ ์ ์ฒ๋ฆฌ๊ธฐ์ ํ์ํฉ๋๋ค. ์ด๊ฒ
๋งคํฌ๋ก ํ์ฅ, ์ผ์ค ๊ทธ๋ํ ๋ณํ, ์ด์ค์ผ์ดํ๋ ๊ฐํ ์ฐ๊ฒฐ,
๋ฐ ๋๋ถ๋ถ์ ์ง์๋ฌธ ์ฒ๋ฆฌ. ์ ์ฒ๋ฆฌ๊ธฐ๋ ์ฌ์ ํ ์ธ์ํ๊ณ ์ ๊ฑฐํฉ๋๋ค.
์ฃผ์์ผ๋ก ์ฌ์ ์ฒ๋ฆฌ๋ ํ์ผ์ ์ ๋ฌํ ์ ์์ต๋๋ค. -C ์์ด ์ปดํ์ผ๋ฌ์
๋ฌธ์ . ์ด ๋ชจ๋์์ ํตํฉ ์ ์ฒ๋ฆฌ๊ธฐ๋ ํ ํฌ๋์ด์ ์ ๋ถ๊ณผํฉ๋๋ค.
ํ๋ก ํธ ์๋๋ฅผ ์ํด.
-f์ ์ฒ๋ฆฌ ์ ๋ ฅ ํ์ผ์ ํ์ฅ์ ์ค ํ๋๊ฐ ์์ผ๋ฉด ์์์ ์ ๋๋ค. .i, .ii or .๋ฏธ.
๋ค์์ GCC๊ฐ ์์ฑํ ์ ์ฒ๋ฆฌ๋ ํ์ผ์ ์ฌ์ฉํ๋ ํ์ฅ์์ ๋๋ค. - ์์ ์ ์ฅ.
-ftabstop=ํญ
ํญ ์ ์ง ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์ค์ ํฉ๋๋ค. ์ด๊ฒ์ ์ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์ฌ๋ฐ๋ฅธ ์ด์ ๋ณด๊ณ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ค์ ํญ์ด ๋ํ๋๋๋ผ๋ ๊ฒฝ๊ณ ๋๋ ์ค๋ฅ์ ์ซ์. ๊ฐ์ด ์์ ๊ฒฝ์ฐ
1๋ณด๋ค ํฌ๊ฑฐ๋ 100๋ณด๋ค ํฌ๋ฉด ์ต์ ์ด ๋ฌด์๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 8์ ๋๋ค.
-fdebug-cpp
์ด ์ต์ ์ GCC ๋๋ฒ๊น ์๋ง ์ ์ฉํฉ๋๋ค. ์ ํจ๊ป ์ฌ์ฉํ ๋ -E, ๋คํ ๋๋ฒ๊น
์์น ์ง๋์ ๋ํ ์ ๋ณด์ ๋๋ค. ์ถ๋ ฅ์ ๋ชจ๋ ํ ํฐ ์์๋ ๋คํ๊ฐ ์ต๋๋ค.
๊ทธ ์์น๊ฐ ์ํ ์ง๋. ํ ํฐ์ ์์น๋ฅผ โโ๋ด๊ณ ์๋ ๋งต์ ๋คํ
๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{"P":F ;"F":F ;"์": ;"์จ": ;"NS": ;"๋ฏธ๋์": ;"์ด์ํ": ,"์์น": }
์์ด ์ฌ์ฉํ ๋ -E, ์ด ์ต์ ์ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
-ftrack ๋งคํฌ๋ก ํ์ฅ[=์ํ]
๋งคํฌ๋ก ํ์ฅ์์ ํ ํฐ์ ์์น๋ฅผ โโ์ถ์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ปดํ์ผ๋ฌ๋
์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋ ํ์ฌ ๋งคํฌ๋ก ํ์ฅ ์คํ์ ๋ํ ์ง๋จ
๋งคํฌ๋ก ํ์ฅ. ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ์ ์ฒ๋ฆฌ๊ธฐ์ ์ปดํ์ผ๋ฌ๊ฐ
๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ. NS ์ํ ๋งค๊ฐ๋ณ์๋ ํ ํฐ์ ์ ๋ฐ๋ ์์ค์ ์ ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์น ์ถ์ ์ ํตํด ํ์ํ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ์ค์ ๋๋ค. ๊ฐ 0 of
์ํ ์ด ์ต์ ์ ๋นํ์ฑํํฉ๋๋ค. -ftrack ๋งคํฌ๋ก ํ์ฅ ์ ์์๋ค
๋ช ๋ น์ค. ๊ฐ 1 ๋ฅผ ์ํด ์ ํ๋ ๋ชจ๋์์ ํ ํฐ ์์น๋ฅผ ์ถ์ ํฉ๋๋ค.
์ต์ํ์ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒํค๋. ์ด ๋ชจ๋์์๋ ํ์ฅ์ผ๋ก ์ธํ ๋ชจ๋ ํ ํฐ
ํจ์์ ๊ฐ์ ๋งคํฌ๋ก์ ์ธ์๋ ๋์ผํ ์์น๋ฅผ ๊ฐ์ต๋๋ค. ๊ฐ 2 ์ถ์ ํ ํฐ
์์น๋ฅผ ์์ ํ. ์ด ๊ฐ์ ๊ฐ์ฅ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ชจํฉ๋๋ค. ์ด ์ต์ ์ด ์ฃผ์ด์ก์ ๋
์ธ์๊ฐ ์์ผ๋ฉด ๊ธฐ๋ณธ ๋งค๊ฐ๋ณ์ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. 2.
"-ftrack-macro-expansion=2"๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค.
-fexec-๋ฌธ์์ =๋ฌธ์์
๋ฌธ์์ด ๋ฐ ๋ฌธ์ ์์์ ์ฌ์ฉ๋๋ ์คํ ๋ฌธ์ ์งํฉ์ ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ
UTF-8์ ๋๋ค. ๋ฌธ์์ ์์คํ ์ "iconv" ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ง์ํ๋ ๋ชจ๋ ์ธ์ฝ๋ฉ์ผ ์ ์์ต๋๋ค.
์ผ์.
-fwide-exec-charset=๋ฌธ์์
์์ด๋ ๋ฌธ์์ด ๋ฐ ๋ฌธ์ ์์์ ์ฌ์ฉ๋๋ ์์ด๋ ์คํ ๋ฌธ์ ์ธํธ๋ฅผ ์ค์ ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ "wchar_t"์ ๋๋น์ ํด๋นํ๋ UTF-32 ๋๋ UTF-16์ ๋๋ค. ๊ฐ์ด
๊ณผ -fexec-๋ฌธ์์ , ๋ฌธ์์ ์์คํ ์ "iconv"์์ ์ง์ํ๋ ๋ชจ๋ ์ธ์ฝ๋ฉ์ผ ์ ์์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฃจํด; ๊ทธ๋ฌ๋ ์ ํฉํ์ง ์์ ์ธ์ฝ๋ฉ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ ํํ "wchar_t"์ ์์ต๋๋ค.
-finput-๋ฌธ์์ =๋ฌธ์์
์ ๋ ฅ์ ๋ฌธ์ ์งํฉ์์ ๋ฒ์ญ์ ์ฌ์ฉ๋๋ ์ ๋ ฅ ๋ฌธ์ ์งํฉ์ ์ค์ ํฉ๋๋ค.
ํ์ผ์ GCC์์ ์ฌ์ฉํ๋ ์์ค ๋ฌธ์ ์ธํธ๋ก ๋ณํํฉ๋๋ค. ๋ก์ผ์ผ์ด ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ๋๋ GCC
๋ก์ผ์ผ์์ ์ด ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉฐ ๊ธฐ๋ณธ๊ฐ์ UTF-8์ ๋๋ค. ์ด๊ฒ์ ๋ ์์๋ค
๋ก์ผ์ผ ๋๋ ์ด ๋ช ๋ น์ค ์ต์ ์ผ๋ก ์ฌ์ ์๋ฉ๋๋ค. ํ์ฌ ๋ช ๋ น-
์ถฉ๋์ด ์๋ ๊ฒฝ์ฐ line ์ต์ ์ด ์ฐ์ ํฉ๋๋ค. ๋ฌธ์์ ๋ชจ๋ ์ธ์ฝ๋ฉ์ด ๋ ์ ์์ต๋๋ค
์์คํ ์ "iconv" ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฃจํด์์ ์ง์ํฉ๋๋ค.
-fworking-๋๋ ํ ๋ฆฌ
์ปดํ์ผ๋ฌ๊ฐ ํ์ฉํ๋ ์ ์ฒ๋ฆฌ๊ธฐ ์ถ๋ ฅ์์ โโ๋ผ์ธ ๋ง์ปค ์์ฑ์ ํ์ฑํ
์ ์ฒ๋ฆฌ ์์ ์ ํ์ฌ ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์๊ณ ์์ต๋๋ค. ์ด ์ต์ ์ด
ํ์ฑํ๋๋ฉด ์ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์ด๊ธฐ ๋ผ์ธ ๋ง์ปค ๋ค์์ ๋ ๋ฒ์งธ ๋ผ์ธ ๋ง์ปค๋ฅผ ๋ด๋ณด๋ ๋๋ค.
ํ์ฌ ์์ ๋๋ ํ ๋ฆฌ ๋ค์ ๋ ๊ฐ์ ์ฌ๋์๊ฐ ์์ต๋๋ค. GCC๋ ์ด๊ฒ์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค
๋๋ ํ ๋ฆฌ, ์ฌ์ ์ฒ๋ฆฌ๋ ์ ๋ ฅ์ ์๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ๋ด๋ณด๋ธ ๋๋ ํ ๋ฆฌ๋ก
์ผ๋ถ ๋๋ฒ๊น ์ ๋ณด ํ์์ ํ์ฌ ์์ ๋๋ ํ ๋ฆฌ. ์ด ์ต์ ์
๋๋ฒ๊น ์ ๋ณด๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ ์์์ ์ผ๋ก ํ์ฑํ๋์ง๋ง ๋ค์์ผ๋ก ๊ธ์งํ ์ ์์ต๋๋ค.
๋ถ์ ํ -fno-์์ ๋๋ ํฐ๋ฆฌ. ๊ฒฝ์ฐ -P ํ๋๊ทธ๊ฐ ๋ช ๋ น์ ์์ต๋๋ค.
line์์ "#line" ์ง์๋ฌธ์ด ์ ํ ์์ฑ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ด ์ต์ ์ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
-fno-show-์ด
์ง๋จ์์ ์ด ๋ฒํธ๋ฅผ ์ธ์ํ์ง ๋ง์ญ์์ค. ์ง๋จ์ด ํ์ํ ๊ฒฝ์ฐ ํ์ํ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ด ๋ฒํธ๋ฅผ ์ดํดํ์ง ๋ชปํ๋ ํ๋ก๊ทธ๋จ์ ์ํด ์ค์บ๋๊ณ ์์ต๋๋ค.
๋ฐ์๋.
-A ์ ๋ถ=๋ต๋ณ
์ ์ด๋ก ์ฃผ์ฅํ๊ธฐ ์ ๋ถ ๋๋ต ๋ต๋ณ. ์ด ์์์
๊ตฌํ๋ณด๋ค ์ ํธ -A ์ ๋ถ(๋ต๋ณ), ์ฌ์ ํ ์ง์๋ฉ๋๋ค.
์ ํน์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
-A -์ ๋ถ=๋ต๋ณ
์ ์ด๋ก ์ด์ค์ ์ทจ์ ์ ๋ถ ๋๋ต ๋ต๋ณ.
-dCHARS
๋ฌธ์ ๋ค์ ๋ฌธ์ ์ค ํ๋ ์ด์์ ์ํ์ค์ด๋ฉฐ ๋ค์ ๋ฌธ์๊ฐ ์๋์ด์ผ ํฉ๋๋ค.
๊ณต๋ฐฑ์ด ์์ ์ต๋๋ค. ๋ค๋ฅธ ๋ฌธ์๋ ์ปดํ์ผ๋ฌ์ ์ํด ์ ์ ํ๊ฒ ํด์๋๊ฑฐ๋
GCC์ ํฅํ ๋ฒ์ ์ ์ํด ์์ฝ๋์ด ์์ผ๋ฏ๋ก ์๋์ผ๋ก ๋ฌด์๋ฉ๋๋ค. ์ง์ ํ๋ ๊ฒฝ์ฐ
ํ๋์ด ์ถฉ๋ํ๋ ์บ๋ฆญํฐ, ๊ฒฐ๊ณผ๋ ์ ์๋์ง ์์ต๋๋ค.
M ์ผ๋ฐ ์ถ๋ ฅ ๋์ ๋ค์ ๋ชฉ๋ก์ ์์ฑํ์ญ์์ค. #๋ฐํ๋ค ๋ชจ๋ ์ง์นจ
๋ฏธ๋ฆฌ ์ ์๋ ๊ฒ์ ํฌํจํ์ฌ ์ ์ฒ๋ฆฌ๊ธฐ ์คํ ์ค์ ์ ์๋ ๋งคํฌ๋ก
๋งคํฌ๋ก. ์ด๊ฒ์ ๋น์ ์ ๋ฒ์ ์ ์ฌ์ ์ ์๋ ๊ฒ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
์ ์ฒ๋ฆฌ๊ธฐ. ํ์ผ์ด ์๋ค๊ณ ๊ฐ์ ํธ.h, ๋ช ๋ น
ํฐ์น foo.h; cpp -dM foo.h
๋ฏธ๋ฆฌ ์ ์ ๋ ๋ชจ๋ ๋งคํฌ๋ก๊ฐ ํ์๋ฉ๋๋ค.
๋น์ ์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ -dM ~์์ด -E ์ ํ๊ถ, -dM ์ ๋์์ด๋ก ํด์๋ฉ๋๋ค.
-fdump-rtl-๋งํ.
D ์ฒ๋ผ M ๋ ๊ฐ์ง ์ธก๋ฉด์ ์ ์ธํ๊ณ : ์ง์ ๋ฏธ๋ฆฌ ์ ์๋ ๋งคํฌ๋ก๋ฅผ ํฌํจํ๊ณ
์ถ๋ ฅ ๋ ์ ์, #๋ฐํ๋ค ์ง์๋ฌธ ๋ฐ ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ. ๋ ์ข ๋ฅ
์ถ๋ ฅ์ ํ์ค ์ถ๋ ฅ ํ์ผ๋ก ์ด๋ํฉ๋๋ค.
N ์ฒ๋ผ D, ๊ทธ๋ฌ๋ ํ์ฅ์ด ์๋ ๋งคํฌ๋ก ์ด๋ฆ๋ง ๋ด๋ณด๋ ๋๋ค.
I ์ฐ์ถ #ํฌํจ ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ์ธ์ ์ง์๋ฌธ.
U ์ฒ๋ผ D ํ์ฅ๋๊ฑฐ๋ ์ ์๊ฐ ํ ์คํธ๋ ๋งคํฌ๋ก๋ง ์ ์ธ
์ ์ฒ๋ฆฌ๊ธฐ ์ง์๋ฌธ์์ ์ถ๋ ฅ๋ฉ๋๋ค. ์ฌ์ฉํ ๋๊น์ง ์ถ๋ ฅ์ด ์ง์ฐ๋๊ฑฐ๋
๋งคํฌ๋ก ํ ์คํธ; ๊ทธ๋ฆฌ๊ณ #์ธ๋ฐํ ์ง์๋ฌธ์ ํ ์คํธ๋ ๋งคํฌ๋ก์ ๋ํด์๋ ์ถ๋ ฅ๋์ง๋ง
๋น์ ์ ์๋์ง ์์.
-P ์ ์ฒ๋ฆฌ๊ธฐ์ ์ถ๋ ฅ์์ โโ๋ผ์ธ๋ง์ปค ์์ฑ์ ๊ธ์งํฉ๋๋ค. ์ด๊ฒ์ ์๋ง๋
C ์ฝ๋๊ฐ ์๋ ๋ฌด์ธ๊ฐ์์ ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์คํํ ๋ ์ ์ฉํ๋ฉฐ ์ ์ก๋ ๊ฒ์ ๋๋ค.
linemarkers์ ์ํด ํผ๋๋ ์ ์๋ ํ๋ก๊ทธ๋จ์.
-C ๋๊ธ์ ๋ฒ๋ฆฌ์ง ๋ง์ธ์. ๋ค์์ ์ ์ธํ ๋ชจ๋ ์ฃผ์์ ์ถ๋ ฅ ํ์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค.
์ง์๋ฌธ๊ณผ ํจ๊ป ์ญ์ ๋๋ ์ฒ๋ฆฌ๋ ์ง์๋ฌธ์ ์๋ ์ฃผ์์ ๊ฒฝ์ฐ.
์ฌ์ฉ ์ ๋ถ์์ฉ์ ๋๋นํด์ผ ํฉ๋๋ค. -C; ๊ทธ๊ฒ์ ์ ์ฒ๋ฆฌ๊ธฐ๊ฐ
๋๊ธ์ ์์ฒด์ ์ผ๋ก ํ ํฐ์ผ๋ก ์ทจ๊ธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฒ์ํ์ ํ์๋๋ ๋๊ธ์
์ง์ ํ์ด ๋ ๊ฒ์ ์์์ ๊ทธ ํ์ ๋ค์์ผ๋ก ๋ฐ๊พธ๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
๋ผ์ธ์ ์ฒซ ๋ฒ์งธ ํ ํฐ์ด ๋ ์ด์ a๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ ์์ค ๋ผ์ธ #.
-CC ๋งคํฌ๋ก ํ์ฅ ์ค์ ํฌํจํ์ฌ ์ฃผ์์ ์ญ์ ํ์ง ๋ง์ญ์์ค. ์ด๊ฒ์ ๋ง์น -C์ ์ธ
๋งคํฌ๋ก์ ํฌํจ๋ ์ฃผ์๋ ์ถ๋ ฅ ํ์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค.
๋งคํฌ๋ก๊ฐ ํ์ฅ๋ฉ๋๋ค.
๋ถ์์ฉ ๋ฟ๋ง ์๋๋ผ -C ์ต์ , -CC ์ต์ ์ ๋ชจ๋ C++ ์คํ์ผ์ ์ ๋ฐํฉ๋๋ค.
๋งคํฌ๋ก ๋ด๋ถ์ ์ฃผ์์ C ์คํ์ผ ์ฃผ์์ผ๋ก ๋ณํํฉ๋๋ค. ์ด๊ฒ์ ๋์ค์ ๋ฐฉ์งํ๊ธฐ ์ํด
์ค์๋ก ์์ค ํ์ ๋๋จธ์ง ๋ถ๋ถ์ ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํ์ฌ ํด๋น ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ใ -CC ์ต์ ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฆฐํธ ์ฃผ์์ ์ง์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
-์ ํต์ ์ธ cpp
ISO C์ ๋ฌ๋ฆฌ ๊ตฌ์ C ์ ์ฒ๋ฆฌ๊ธฐ์ ๋์์ ๋ชจ๋ฐฉํ์ญ์์ค.
์ ์ฒ๋ฆฌ๊ธฐ.
-์ผ๊ฐํ
์ผ์ค ๊ทธ๋ํ ์ํ์ค๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
-๋ค์ ๋งคํ
๋งค์ฐ ์งง์ ํ์ผ๋ง ํ์ฉํ๋ ํ์ผ ์์คํ ์์ ์๋ํ๋ ํน์ ์ฝ๋ ํ์ฑํ
MS-DOS์ ๊ฐ์ ์ด๋ฆ.
--๋์
-ํ๊ฒ ํํ
์๋ฌด ๊ฒ๋ ์ฌ์ ์ฒ๋ฆฌํ๋ ๋์ ๋ชจ๋ ๋ช ๋ น์ค ์ต์ ์ ์ค๋ช ํ๋ ํ ์คํธ๋ฅผ ์ธ์ํฉ๋๋ค.
-v ์์ธ ๋ชจ๋. ์คํ ์์ ์ GNU CPP์ ๋ฒ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๊ณ ,
ํฌํจ ๊ฒฝ๋ก์ ์ต์ข ํ์์ ๋ณด๊ณ ํฉ๋๋ค.
-H ๋ค๋ฅธ ์ผ๋ฐ ํ๋๊ณผ ํจ๊ป ์ฌ์ฉ๋ ๊ฐ ํค๋ ํ์ผ์ ์ด๋ฆ์ ์ธ์ํ์ญ์์ค. ๊ฐ
์ด๋ฆ์ ๋ค์ฌ ์ฐ๊ธฐ๊ฐ ์ผ๋ง๋ ๊น์์ง ๋ณด์ฌ์ค๋๋ค. #ํฌํจ ์คํ์ ๋๋ค. ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ํค๋
์ ํจํ์ง ์์ ๊ฒ์ผ๋ก ํ๋ช ๋ ๊ฒฝ์ฐ์๋ ํ์ผ๋ ์ธ์๋ฉ๋๋ค. ์๋ชป๋ ๋ฏธ๋ฆฌ ์ปดํ์ผ๋
ํค๋ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ธ์๋ฉ๋๋ค. ...NS ๊ทธ๋ฆฌ๊ณ ์ ํจํ ...! .
-๋ฒ์ญ
--๋ฒ์ญ
GNU CPP์ ๋ฒ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ์ญ์์ค. ๋์ ํ ๋ฒ์ผ๋ก ํ์์ ๊ฐ์ด ์ ์ฒ๋ฆฌ๋ฅผ ์งํํฉ๋๋ค.
๋ ๊ฐ์ ๋์๋ก ์ฆ์ ์ข ๋ฃํ์ญ์์ค.
ํ๊ฒฝ
์ด ์น์ ์์๋ CPP ์๋ ๋ฐฉ์์ ์ํฅ์ ์ฃผ๋ ํ๊ฒฝ ๋ณ์์ ๋ํด ์ค๋ช ํฉ๋๋ค. ๋น์ ์ ํ ์ ์์ต๋๋ค
๊ทธ๊ฒ๋ค์ ์ฌ์ฉํ์ฌ ํฌํจ ํ์ผ์ ๊ฒ์ํ ๋ ์ฌ์ฉํ ๋๋ ํ ๋ฆฌ ๋๋ ์ ๋์ด๋ฅผ ์ง์ ํ๊ฑฐ๋
์ข ์์ฑ ์ถ๋ ฅ์ ์ ์ดํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ต์ ์ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ์ฅ์๋ฅผ ์ง์ ํ ์๋ ์์ต๋๋ค. -I, ์ ์ด
๋ค์๊ณผ ๊ฐ์ ์ต์ ์ด ์๋ ์ข ์์ฑ ์ถ๋ ฅ -M. ์ด๋ค์ ํ๊ฒฝ ๋ณ์๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
์ด๋ ์ฐจ๋ก๋ก GCC์ ๊ตฌ์ฑ๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
cpath
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
๊ฐ ๋ณ์์ ๊ฐ์ ํน์ ๋ฌธ์๋ก ๊ตฌ๋ถ๋ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก์ ๋๋ค.
์ฒ๋ผ PATH, ํค๋ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค. ํน๋ณํ ์บ๋ฆญํฐ,
"PATH_SEPARATOR"๋ ๋์์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ GCC ๋น๋ ์ ๊ฒฐ์ ๋ฉ๋๋ค. ๋ง์ดํฌ๋ก์ํํธ
Windows ๊ธฐ๋ฐ ๋์์ ์ธ๋ฏธ์ฝ๋ก ์ด๋ฉฐ ๊ฑฐ์ ๋ชจ๋ ๋ค๋ฅธ ๋์์ ๊ฒฝ์ฐ
์ฝ๋ก .
cpath ์ง์ ๋ ๊ฒ์ฒ๋ผ ๊ฒ์ํ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก์ ์ง์ ํฉ๋๋ค. -Iํ์ง๋ง,
์ฃผ์ด์ง ๊ฒฝ๋ก ํ์ -I ๋ช ๋ น์ค์ ์ต์ . ์ด ํ๊ฒฝ ๋ณ์
์ฌ์ ์ฒ๋ฆฌ๋๋ ์ธ์ด์ ๊ด๊ณ์์ด ์ฌ์ฉ๋ฉ๋๋ค.
๋๋จธ์ง ํ๊ฒฝ ๋ณ์๋ ํน์ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ ์ฒ๋ฆฌํ ๋๋ง ์ ์ฉ๋ฉ๋๋ค.
ํ์๋ ์ธ์ด. ๊ฐ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ๊ฒ์ํ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก์ ์ง์ ํฉ๋๋ค.
๋ก ์ง์ -์์ด์์คํ , ๊ทธ๋ฌ๋ ์ฃผ์ด์ง ๊ฒฝ๋ก ํ์ -์์ด์์คํ ์ต์
๋ช ๋ น ํ.
์ด ๋ชจ๋ ๋ณ์์์ ๋น ์์๋ ์ปดํ์ผ๋ฌ์๊ฒ ํ์ฌ๋ฅผ ๊ฒ์ํ๋๋ก ์ง์ํฉ๋๋ค.
์์ ๋๋ ํ ๋ฆฌ. ๋น ์์๋ ๊ฒฝ๋ก์ ์์์ด๋ ๋์ ๋ํ๋ ์ ์์ต๋๋ค. ์์ํ
์๋ฅผ ๋ค์ด ๊ฐ์ด cpath ":/special/include"์ด๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
-๋๋. -๋/ํน๋ณ/ํฌํจ.
DEPENDENCIES_OUTPUT
์ด ๋ณ์๊ฐ ์ค์ ๋๋ฉด ํด๋น ๊ฐ์ Make ๊ธฐ๋ฐ์ ์ข ์์ฑ์ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํฉ๋๋ค.
์ปดํ์ผ๋ฌ๊ฐ ์ฒ๋ฆฌํ๋ ๋น์์คํ ํค๋ ํ์ผ์ ์์คํ ํค๋ ํ์ผ์
์ข ์์ฑ ์ถ๋ ฅ์์ โโ๋ฌด์๋ฉ๋๋ค.
์ ๊ฐ์น DEPENDENCIES_OUTPUT ํ์ผ ์ด๋ฆ์ผ ์ ์์ผ๋ฉฐ ์ด ๊ฒฝ์ฐ Make ๊ท์น
์์ค ํ์ผ ์ด๋ฆ์์ ๋์ ์ด๋ฆ์ ์ถ์ธกํ์ฌ ํด๋น ํ์ผ์ ๊ธฐ๋ก๋ฉ๋๋ค. ์๋๋ฉด ๊ทธ
๊ฐ์ ํ์์ ๊ฐ์ง ์ ์์ต๋๋ค. ํ์ผ ๋ชฉํ, ์ด ๊ฒฝ์ฐ ๊ท์น์ด ํ์ผ์ ๊ธฐ๋ก๋ฉ๋๋ค. ํ์ผ
์ฌ์ฉ ๋ชฉํ ๋์ ์ด๋ฆ์ผ๋ก.
์ฆ, ์ด ํ๊ฒฝ ๋ณ์๋ ์ต์ ์ ๊ฒฐํฉํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. -MM
๊ณผ -MF, ์ ํ ์ฌํญ -์ฐ ์ค์์น๋.
SUNPRO_DEPENDENCIES
์ด ๋ณ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. DEPENDENCIES_OUTPUT (์ ์ฐธ์กฐ), ๊ทธ ์์คํ ์ ์ ์ธํ๊ณ
ํค๋ ํ์ผ์ ๋ฌด์๋์ง ์์ผ๋ฏ๋ก -M ๋ณด๋ค๋ -MM. ๊ทธ๋ฌ๋, ๊ทธ
๊ธฐ๋ณธ ์ ๋ ฅ ํ์ผ์ ๋ํ ์ข ์์ฑ์ ์๋ต๋ฉ๋๋ค.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์ผ๋ก mipsel-linux-gnu-cpp-5 ์ฌ์ฉ