์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ์ ๊ณต์ ์ฒด์์ ์คํํ ์ ์๋ i686-w64-mingw32-widl ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
widl - ์์ธ ์ธํฐํ์ด์ค ์ ์ ์ธ์ด(IDL) ์ปดํ์ผ๋ฌ
๊ฐ์
์๋ค [์ต์ ] IDL_ํ์ผ
์๋ค [์ต์ ] --dll ๋ฐ์ดํฐ ์ ์ฉ name1 [name2...]
๊ธฐ์
์ต์ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ํ๋ก๊ทธ๋จ์ ํค๋ ํ์ผ์ ์์ฑํ๊ณ ์๋ง๋ ํด๋ผ์ด์ธํธ์
์๋ฒ ์คํ , ํ๋ก์ ๋ฐ dlldata ํ์ผ, typelib ๋ฐ UUID ํ์ผ
IDL ํ์ผ์ ๋ด์ฉ. ์ต์ ์ค ํ๋๋ผ๋ -c, -h, -p, -s, -t, -u or --๋ก์ปฌ ์คํ
์ฃผ์ด์ง๋ค, ์๋ค ์์ฒญ๋ ํ์ผ๋ง ์์ฑํ๊ณ ๋ค๋ฅธ ํ์ผ์ ์์ฑํ์ง ์์ต๋๋ค. ๋ก ์คํํ ๋
--dll ๋ฐ์ดํฐ ์ ์ฉ, widl์ dlldata ํ์ผ๋ง ์์ฑํ๋ฉฐ ์ฌ๊ธฐ์๋
์ธ์๋ก ์ ๋ฌ๋ ์ด๋ฆ. ์ผ๋ฐ์ ์ผ๋ก ์ด ํ์ผ์ด ์ ๋ฐ์ดํธ๋๋ ๋ฐฉ์์ ๋งค๋ฒ ์๋ค is
์คํํ๋ฉด ๊ธฐ์กด dlldata ํ์ผ์ ์ฝ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋์ผํ ํ์ผ๋ก ์ฌ์์ฑํฉ๋๋ค.
์ด๋ฆ ๋ชฉ๋ก์ด์ง๋ง ํ์ฌ ํ๋ก์ ํ์ผ์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ธ์ ์์ด ์คํํ ๋, ์๋ค ๋์๋ง ๋ฉ์์ง๋ฅผ ์ธ์ํฉ๋๋ค.
์ต์
์ผ๋ฐ ์ต์ :
-V ๋ฒ์ ๋ฒํธ๋ฅผ ์ธ์ํ๊ณ ์ข ๋ฃํฉ๋๋ค.
-์ํ, --์ถ๋ ฅ=name
์ถ๋ ฅ ํ์ผ์ ์ด๋ฆ์ ์ค์ ํฉ๋๋ค. ์ฌ๋ฌ ์ถ๋ ฅ ํ์ผ์ ์์ฑํ ๋ ์ด ์ค์ ์
ํ์ผ์ ๊ธฐ๋ณธ ์ด๋ฆ๋ง; ๊ทธ๋ฐ ๋ค์ ๊ฐ ์ถ๋ ฅ ํ์ผ์ ์ด๋ฆ์ด ์ง์ ๋ฉ๋๋ค. name.์๊ฐ,
name_p.c ๋ฑ
-b CPU ์ ์กฐ์ฌ[-์ปค๋]-os
ํฌ๋ก์ค ์ปดํ์ผํ ๋ ๋์ ์ํคํ ์ฒ๋ฅผ ์ค์ ํฉ๋๋ค. ๋์ ์ฌ์์
์ ์ํด ๋ฐํ๋ ํ์ค autoconf ํ์ ๊ตฌ์ฑ.ํ์.
ํค๋ ์ต์ :
-h ํค๋ ํ์ผ์ ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ์ธํ์ผ.h.
--์ด์ ์ด๋ฆ
์ค๋๋ ๋ช ๋ช ๊ท์น์ ์ฌ์ฉํ์ญ์์ค.
ํ์ ๋์๊ด ์ต์ :
-t ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ์ธํ์ผ.tlb. ๋ง์ฝ ์ถ๋ ฅ
ํ์ผ ์ด๋ฆ์ ๋ค์์ผ๋ก ๋๋ฉ๋๋ค. .์๊ณ ๊ธฐ, ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ๋ ์ด์ง ๋ฆฌ์์ค ํ์ผ์
๋์ ์์ฑ๋ฉ๋๋ค.
-m32, -m64
Win32 ๋๋ Win64 ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๊ฐ ์์ฑํฉ๋๋ค.
UUID ํ์ผ ์ต์ :
-u UUID ํ์ผ์ ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ์ธํ์ผ_i.c.
ํ๋ก์/์คํ ์ธ๋ ์ต์ :
-c ํด๋ผ์ด์ธํธ ์คํ ํ์ผ์ ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ์ธํ์ผ_c.c.
- ์ค์ค ์ธ๋ผ์ธ ์คํ ์ ์์ฑํฉ๋๋ค.
์๋ ๊ตฌ์ ํด์ ์คํ ์ ์์ฑํฉ๋๋ค.
-์ค์ดํ, -์ค์ต, -์ค์ดํ
์์ ํ ํด์๋ ์๋ก์ด ์คํ์ผ์ ์คํ ์ ์์ฑํฉ๋๋ค.
-p ํ๋ก์๋ฅผ ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ์ธํ์ผ_p.c.
--์ ๋์ฌ-๋ชจ๋=์ ๋์ฌ
ํด๋ผ์ด์ธํธ์ ์๋ฒ ์คํ ๋ชจ๋์ ์ด๋ฆ์ ์ง์ ํ๋ ์ ๋์ฌ.
--์ ๋์ฌ-ํด๋ผ์ด์ธํธ=์ ๋์ฌ
ํด๋ผ์ด์ธํธ ์คํ ์ ์ด๋ฆ์ ๋ถ์ผ ์ ๋์ด์ ๋๋ค.
--์ ๋์ฌ-์๋ฒ=์ ๋์ฌ
์๋ฒ ์คํ ์ ์ด๋ฆ์ ๋ถ์ผ ์ ๋์ฌ.
-s ์๋ฒ ์คํ ํ์ผ์ ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ์ธํ์ผ_s.c.
--win32, --win64
๊ฐ๊ฐ 32๋นํธ ๋๋ 64๋นํธ ์ฝ๋๋ง ์์ฑํฉ๋๋ค(๊ธฐ๋ณธ๊ฐ์ ๋ ๋ค ์์ฑํ๋ ๊ฒ์ ๋๋ค.
32๋นํธ ๋ฐ 64๋นํธ ๋ฒ์ ์ ๋์ผํ ๋์ ํ์ผ์ ์ ์ฅ).
--rt IDL์ ๋ํ ์ถ๊ฐ ์ธ์ด ํ์ฅ์ ํ์ฑํํ์ฌ WinRT๋ฅผ ์ง์ํฉ๋๋ค.
๋ฑ๋ก ์คํฌ๋ฆฝํธ ์ต์ :
-r ๋ฑ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ์ธํ์ผ_r.rgs. ๊ฒฝ์ฐ
์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ๋ค์์ผ๋ก ๋๋ฉ๋๋ค. .์๊ณ ๊ธฐ, ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ๋ ๋ฐ์ด๋๋ฆฌ ๋ฆฌ์์ค ํ์ผ์
๋์ ์์ฑ๋ฉ๋๋ค.
DLL ๋ฐ์ดํฐ ํ์ผ ์ต์ :
--dll ๋ฐ์ดํฐ ์ ์ฉ name1 [name2...]
์ง์ ๋ ํ๋ก์ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ dlldata ํ์ผ์ ์ฒ์๋ถํฐ ๋ค์ ์์ฑํฉ๋๋ค. NS
๊ธฐ๋ณธ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ dlldata.c.
์ ์ฒ๋ฆฌ๊ธฐ ์ต์ :
-I ํต๋ก
๊ฒฝ๋ก์ ํค๋ ๊ฒ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๋ค์ค ๊ฒ์ ๋๋ ํ ๋ฆฌ๊ฐ ํ์ฉ๋ฉ๋๋ค.
-D id[=ํ]
์ ์ฒ๋ฆฌ๊ธฐ ๋งคํฌ๋ก ์ ์ id ๊ฐ์น์๋ ํ.
-E ์ ์ฒ๋ฆฌ๋ง ํฉ๋๋ค.
-N ์ ๋ ฅ์ ์ ์ฒ๋ฆฌํ์ง ๋ง์ญ์์ค.
๋๋ฒ๊ทธ ์ต์ :
-W ํํ์ ๊ฒฝ๊ณ ๋ฅผ ํ์ฑํํฉ๋๋ค.
-d n ๋๋ฒ๊ทธ ์์ค์ ์์ด ์๋ ์ ์๋ก ์ค์ n. ์ ๋์ด๊ฐ ๋ถ์ ๊ฒฝ์ฐ 0x, ๊ทธ๊ฒ์ ๋ ๊ฒ์ด๋ค
XNUMX์ง์๋ก ํด์๋ฉ๋๋ค. ๊ฐ์ ์๋ฏธ๋ ๋ค์์ ์ฐธ์กฐํ์ญ์์ค. DEBUG
์๋ด
๊ทธ ์ธ ์ต์ :
-app_config
๋ฌด์๋จ, ์ค๊ฐ ํธํ์ฑ์ ์ํด ์กด์ฌํฉ๋๋ค.
--๋ก์ปฌ ์คํ =ํ์ผ
๊ฐ์ฒด ์ธํฐํ์ด์ค์์ call_as/local ๋ฉ์๋์ ๋ํ ๋น ์คํ ์์ฑ ๋ฐ ์ฐ๊ธฐ
๊ทธ๋ค์๊ฒ ํ์ผ.
DEBUG
๋๋ฒ๊ทธ ์์ค n ๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฏธ๋ฅผ ๊ฐ์ง ๋นํธ ๋ง์คํฌ์ ๋๋ค.
* 0x01 ์ด๋ค ๋ฆฌ์์ค๊ฐ ๊ตฌ๋ฌธ ๋ถ์๋๋์ง ์๋ ค์ค๋๋ค(์์ธ ๋ชจ๋).
* 0x02 ๋ด๋ถ ๊ตฌ์กฐ ๋คํ
* 0x04 ํ์ ์ถ์ ์์ฑ(yydebug=1)
* 0x08 ์ ์ฒ๋ฆฌ๊ธฐ ๋ฉ์์ง
* 0x10 ์ ์ฒ๋ฆฌ๊ธฐ lex ๋ฉ์์ง
* 0x20 ์ ์ฒ๋ฆฌ๊ธฐ yacc ์ถ์
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์ผ๋ก i686-w64-mingw32-widl์ ์ฌ์ฉํ์ธ์.