Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ์ ๊ณต์ ์ฒด์์ ์คํํ ์ ์๋ avr-dlltool ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
dlltool - DLL์ ๋น๋ํ๊ณ ์ฌ์ฉํ๋ ๋ฐ ํ์ํ ํ์ผ์ ๋ง๋ญ๋๋ค.
๊ฐ์
dll๋๊ตฌ [-d|--์ ๋ ฅ ์ ์ def ํ์ผ ์ด๋ฆ]
[-b|--๋ฒ ์ด์ค ํ์ผ ๊ธฐ๋ณธ ํ์ผ ์ด๋ฆ]
[-e|--์ถ๋ ฅ-exp ๋ด๋ณด๋ด๊ธฐ ํ์ผ ์ด๋ฆ]
[-z|--์ถ๋ ฅ ์ ์ def ํ์ผ ์ด๋ฆ]
[-l|--์ถ๋ ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ ์ด๋ฆ]
[-y|--์ถ๋ ฅ ์ง์ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ ์ด๋ฆ]
[--๋ด๋ณด๋ด๊ธฐ-๋ชจ๋ ๊ธฐํธ] [--๋ด๋ณด๋ด๊ธฐ ์์-๋ชจ๋ ๊ธฐํธ]
[--exclude-๊ธฐํธ ๋ช ๋ถ]
[--no-๊ธฐ๋ณธ-์ ์ธ]
[-S|--๊ฐ์ด ์ด์ ๋ธ๋ฌ ๊ฒฝ๋ก] [-f|-- ํ๋๊ทธ๋ก ์ต์ ]
[-D|--dll ์ด๋ฆ name] [-m|--๊ธฐ๊ณ ๊ธฐ๊ณ]
[-a|--๊ฐ์ ์ถ๊ฐ]
[-U|--๋ฐ์ค ์ถ๊ฐ] [--add-stdcall-๋ฐ์ค]
[-k|--์ฃฝ์ด๋ค] [-A|--์ถ๊ฐ-stdcall-๋ณ์นญ]
[-p|--ext-์ ๋์ฌ-๋ณ์นญ ์ ๋์ฌ]
[-x|--no-idata4] [-c|--no-idata5]
[--use-nul-์ ๋์ฌ๊ฐ ๋ถ์-๊ฐ์ ธ์ค๊ธฐ ํ ์ด๋ธ]
[-I|--์๋ณํ๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ ์ด๋ฆ] [--์๋ณ-์๊ฒฉ]
[-i|--์ํธ์์ฉ]
[-n|--๋ ธ๋ ์ญ์ ] [-t|--temp-์ ๋์ฌ ์ ๋์ฌ]
[-v|--๋ง ์๊ฐ ๋ง์]
[-h|--๋์] [-V|--๋ฒ์ญ]
[--์์ ๋ฐ์ค ์์] [--์ ํ ๋ฐ์ค]
[๊ฐ์ฒด ํ์ผ ...]
๊ธฐ์
DLL ๋๊ตฌ ์์ ์ฌ ์ ์๋ ์ ๋ ฅ์ ์ฝ์ต๋๋ค. -d ๊ณผ -b ์ต์ ๊ณผ ๊ฐ์ฒด
๋ช ๋ น์ค์ ์ง์ ๋ ํ์ผ. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๊ณ -e ์ ํ๊ถ
๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ์์ฑํ๋๋ก ์ง์ ๋์์ต๋๋ค. ๋ง์ฝ -l ์ต์ ์ด ์ง์ ๋์์ต๋๋ค
๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์์ฑํ๊ณ ๋ง์ฝ -z ์ต์ ์ด ์ง์ ๋์ด def ํ์ผ์ ์์ฑํฉ๋๋ค. ์ด๋
๋๋ ๋ชจ๋ -e, -l ๊ณผ -z ์ต์ ์ dlltool์ ํ ๋ฒ ํธ์ถํ ๋ ๋ํ๋ ์ ์์ต๋๋ค.
DLL์ ์์ฑํ ๋ DLL์ ์์ค์ ํจ๊ป ์ธ ๊ฐ์ง๊ฐ ํ์ํฉ๋๋ค.
๋ค๋ฅธ ํ์ผ๋ค. DLL ๋๊ตฌ ์ด๋ฌํ ํ์ผ์ ๋ง๋๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ํ์ผ์ .def DLL์์ ๋ด๋ณด๋ผ ํจ์๋ฅผ ์ง์ ํ๋ ํ์ผ,
DLL ๊ฐ์ ธ์ค๊ธฐ ๋ฑ์ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค. ์ด๊ฒ์ ํ ์คํธ ํ์ผ์ด๋ฉฐ ๋ค์์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.
์, ๋๋ DLL ๋๊ตฌ ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ ์ ์์ต๋๋ค. -z ์ต์ . ์ด ๊ฒฝ์ฐ DLL ๋๊ตฌ ์์ง
๋ช ๋ น์ค์ ์ง์ ๋ ๊ฐ์ฒด ํ์ผ์ ์ค์บํ์ฌ ๋ค์์ ํฌํจํ๋ ๊ธฐ๋ฅ์ ์ฐพ์ต๋๋ค.
์์ถ๋๋ ๊ฒ์ผ๋ก ํน๋ณํ ํ์๋๊ณ ํญ๋ชฉ์ .def ๊ทธ๊ฒ์ ํ์ผ
๋ง๋ญ๋๋ค.
ํจ์๋ฅผ DLL์์ ๋ด๋ณด๋ธ ๊ฒ์ผ๋ก ํ์ํ๋ ค๋ฉด
-๋ด ๋ณด๋ด๋ค: ์ํธ๋ฆฌ .์ง์ ๊ฐ์ฒด ํ์ผ์ ์น์ . ์ด๊ฒ์ ๋ ์์๋ค
๋ฅผ ์ฌ์ฉํ์ฌ C์์ ์ํ asm() ์ด์์:
asm(".์น์ .drectve");
asm(".ascii \"-๋ด๋ณด๋ด๊ธฐ:my_func\"");
int my_func (๋ฌดํจ) { ... }
DLL ์์ฑ์ ํ์ํ ๋ ๋ฒ์งธ ํ์ผ์ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ๋๋ค. ์ด ํ์ผ์
DLL์ ๋ณธ๋ฌธ์ ๊ตฌ์ฑํ๊ณ DLL ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด ํ์ผ
๊ทธ๋ฆฌ๊ณ ์ธ๋ถ ์ธ๊ณ. ์ด๊ฒ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ด๋ฉฐ ๋ค์์ ์ ๊ณตํ์ฌ ์์ฑํ ์ ์์ต๋๋ค. -e
~์ ๋ํ ์ต์ DLL ๋๊ตฌ ์์ฑํ๊ฑฐ๋ ์ฝ์ ๋ .def ํ์ผ.
DLL ์์ฑ์ ํ์ํ ์ธ ๋ฒ์งธ ํ์ผ์ ํ๋ก๊ทธ๋จ์ด ๋งํฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ๋๋ค.
DLL('๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ')์ ๊ธฐ๋ฅ์ ์ก์ธ์คํ๊ธฐ ์ํด. ์ด ํ์ผ์ ๋ง๋ค ์ ์์ต๋๋ค
์ ๊ณตํจ์ผ๋ก์จ -l ์์ฑํ๊ฑฐ๋ ์ฝ์ ๋ dlltool์ ๋ํ ์ต์ .def ํ์ผ.
๊ฒฝ์ฐ -y ์ต์ ์ด ์ง์ ๋๋ฉด dlltool์์ ์ฌ์ฉํ ์ ์๋ ์ง์ฐ ๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
์ผ๋ฐ ๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ ํ๋ก๊ทธ๋จ์ด dll์ ์ฐ๊ฒฐ๋๋ ์ฆ์
๊ฐ์ ธ์จ ํจ์๊ฐ ์ฒ์์ผ๋ก ํธ์ถ๋ฉ๋๋ค. ๊ฒฐ๊ณผ ์คํ ํ์ผ์ ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
_์ ํฌํจํ๋ ์ ์ delayimp ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐ๊ฒฐ๋์ด์ผ ํฉ๋๋ค._์ง์ฐ๋ก๋ ๋์ฐ๋ฏธ2(), ์ฐจ๋ก๋ก
kernel32์์ LoadLibraryA ๋ฐ GetProcAddress๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
DLL ๋๊ตฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์์ผ๋ก ๋น๋ํ์ง๋ง ๋ค์์ ์์ฑํ์ฌ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ๋น๋ํฉ๋๋ค.
์ด์ ๋ธ๋ฌ ๋ช ๋ น๋ฌธ์ด ํฌํจ๋ ์์ ํ์ผ์ ๋ง๋ ๋ค์ ์ด๋ฅผ ์ด์ ๋ธํฉ๋๋ค. NS -S ๋ช ๋ น
line ์ต์ ์ dlltool์ด ์ฌ์ฉํ ์ด์ ๋ธ๋ฌ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ์, -f ์ต์ ์ ์ฌ์ฉํ์ฌ ํด๋น ์ด์ ๋ธ๋ฌ์ ํน์ ํ๋๊ทธ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. NS -n ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค
์๋ฃ๋๋ฉด dlltool์ด ์ด๋ฌํ ์์ ์ด์ ๋ธ๋ฌ ํ์ผ์ ์ญ์ ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. -n
๋ ๋ฒ ์ง์ ํ๋ฉด dlltool์ด ์์ ๊ฐ์ฒด ํ์ผ์ ์ญ์ ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
๊ทธ๊ฒ์ ๋์๊ด์ ์ง๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค.
๋ค์์ ์์ค ํ์ผ์์ DLL์ ๋ง๋๋ ์์ ๋๋ค. dll.c ๋ํ ํ๋ก๊ทธ๋จ์ ๋ง๋๋
(์ค๋ธ์ ํธ ํ์ผ์์ ํ๋ก๊ทธ๋จ) ํด๋น DLL์ ์ฌ์ฉํฉ๋๋ค.
gcc -c dll.c
dlltool -e export.o -l dll.lib dll.o
gcc dll.o export.o -o dll.dll
gcc program.o dll.lib -o ํ๋ก๊ทธ๋จ
DLL ๋๊ตฌ ๋ํ ๊ธฐ์กด ๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฟผ๋ฆฌํ์ฌ
์ฐ๊ฒฐ๋ DLL์ ๋๋ค. ์ ๋ํ ์ค๋ช ์ ์ฐธ์กฐํ์ญ์์ค. -I or --์๋ณํ๋ค ์ต์ ์ ์ ํํฉ๋๋ค.
์ต์
๋ช ๋ น์ค ์ต์ ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-d ํ์ผ ์ด๋ฆ
--์ ๋ ฅ ์ ์ ํ์ผ ์ด๋ฆ
์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. .def ํ์ผ์ ์ฝ๊ณ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
-b ํ์ผ ์ด๋ฆ
--๋ฒ ์ด์ค ํ์ผ ํ์ผ ์ด๋ฆ
์ฝ๊ณ ์ฒ๋ฆฌํ ๊ธฐ๋ณธ ํ์ผ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ์ด ๋ด์ฉ
ํ์ผ์ dlltool์์ ์์ฑํ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ์ฌ๋ฐฐ์น ์น์ ์ ์ถ๊ฐ๋ฉ๋๋ค.
-e ํ์ผ ์ด๋ฆ
--์ถ๋ ฅ-exp ํ์ผ ์ด๋ฆ
dlltool์ด ์์ฑํ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
-z ํ์ผ ์ด๋ฆ
--์ถ๋ ฅ ์ ์ ํ์ผ ์ด๋ฆ
์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. .def dlltool์์ ์์ฑํ ํ์ผ์ ๋๋ค.
-l ํ์ผ ์ด๋ฆ
--์ถ๋ ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ ์ด๋ฆ
dlltool์ด ์์ฑํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
-y ํ์ผ ์ด๋ฆ
--์ถ๋ ฅ ์ง์ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ ์ด๋ฆ
dlltool์ด ์์ฑํ ์ง์ฐ ๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
--๋ด๋ณด๋ด๊ธฐ-๋ชจ๋ ๊ธฐํธ
์ ๋ ฅ ๊ฐ์ฒด ํ์ผ์์ ๋ฐ๊ฒฌ๋๋ ๋ชจ๋ ์ ์ญ ๋ฐ ์ฝํ ์ ์ ๊ธฐํธ๋ฅผ ๊ธฐํธ๋ก ์ทจ๊ธํฉ๋๋ค.
์์ถ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด๋ณด๋ด์ง์ง ์๋ ์์ ๊ธฐํธ ๋ชฉ๋ก์ด ์์ต๋๋ค.
~์ ๋ณด์๋ผ. --no-๊ธฐ๋ณธ-์ ์ธ ์ต์ . ํ์ง ์๋๋ก ๊ธฐํธ ๋ชฉ๋ก์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ฅผ ์ฌ์ฉํ์ฌ ๋ด๋ณด๋ด๊ธฐ --exclude-๊ธฐํธ ์ต์ ์ ์ ํํฉ๋๋ค.
--๋ด๋ณด๋ด๊ธฐ ์์-๋ชจ๋ ๊ธฐํธ
์ ๋ ฅ์ ๋ช ์์ ์ผ๋ก ๋์ด๋ ๊ธฐํธ๋ง ๋ด๋ณด๋ด๊ธฐ .def ํ์ผ ๋๋ .์ง์ ์น์
์ ๋ ฅ ๊ฐ์ฒด ํ์ผ. ์ด๊ฒ์ด ๊ธฐ๋ณธ ๋์์ ๋๋ค. NS .์ง์ ์น์ ์
์ ์ํด ์์ฑ DLL ๋ด๋ณด๋ด๊ธฐ ์์ค ์ฝ๋์ ์์ฑ.
--exclude-๊ธฐํธ ๋ช ๋ถ
๋ค์์ผ๋ก ๊ธฐํธ๋ฅผ ๋ด๋ณด๋ด์ง ๋ง์ญ์์ค. ๋ช ๋ถ. ์ผํ๋ก ๊ตฌ๋ถ๋ ๊ธฐํธ ์ด๋ฆ ๋ชฉ๋ก์ ๋๋ค.
๋๋ ์ฝ๋ก ๋ฌธ์. ๊ธฐํธ ์ด๋ฆ์๋ ์ ํ ๋ฐ์ค์ด ํฌํจ๋์ด์๋ ์ ๋ฉ๋๋ค. ์ด๊ฒ
๋๋ง ์๋ฏธ๊ฐ ์์ต๋๋ค. --๋ด๋ณด๋ด๊ธฐ-๋ชจ๋ ๊ธฐํธ ์ฌ์ฉ.
--no-๊ธฐ๋ณธ-์ ์ธ
์ธ์ ๋ค ๊ณต์ ํ๋งค์ ์ธ --๋ด๋ณด๋ด๊ธฐ-๋ชจ๋ ๊ธฐํธ ๊ฐ ์ฌ์ฉ๋๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ํน์ ํน์
๊ธฐํธ. ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํผํ๊ธฐ ์ํ ํ์ฌ ๊ธฐํธ ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. DLLMain@12,
DLLEntryPoint@0, ๋ถ์ํ_ptr. ๋น์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค --no-๊ธฐ๋ณธ-์ ์ธ ์งํ ์ต์
์ด๋ฌํ ํน์ ๊ธฐํธ๋ฅผ ๋ด๋ณด๋ ๋๋ค. ์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ง ์๋ฏธ๊ฐ ์์ต๋๋ค. --๋ด๋ณด๋ด๊ธฐ-๋ชจ๋ ๊ธฐํธ
์ฌ์ฉ.
-S ํต๋ก
--๊ฐ์ด ํต๋ก
ํ์ผ ์ด๋ฆ์ ํฌํจํ์ฌ ํ์ผ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ด์ ๋ธ๋ฌ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค.
ํ์ผ์ ๋ด๋ณด๋ ๋๋ค.
-f ์ต์
-- ํ๋๊ทธ๋ก ์ต์
์ด์ ๋ธ๋ฌ์ ์ ๋ฌํ ํน์ ๋ช ๋ น์ค ์ต์ ์ ์ง์ ํฉ๋๋ค.
๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ๋น๋ํฉ๋๋ค. ์ด ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์๋ํฉ๋๋ค. -S ์ต์ ์ด ์ฌ์ฉ๋์ง ์์ต๋๋ค.
์ด ์ต์ ์ ํ๋์ ์ธ์๋ง ์ฌ์ฉํ๋ฉฐ ๋ช ๋ น์์ ๋ ๋ฒ ์ด์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ
์ค์ ์ ๋ ฅํ๋ฉด ๋์ค์ ๋ฐ์ํ๋ ํญ๋ชฉ์ด ์ด์ ํญ๋ชฉ๋ณด๋ค ์ฐ์ ์ ์ฉ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ์ํ ๊ฒฝ์ฐ
์ฌ๋ฌ ์ต์ ์ ์ด์ ๋ธ๋ฌ์ ์ ๋ฌํ๋ ค๋ฉด ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ด์ผ ํฉ๋๋ค.
-D name
--dll-์ด๋ฆ name
์ ์ ์ฅํ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. .def ํ์ผ์ DLL์ ์ด๋ฆ์ผ๋ก -e
์ต์ ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ต์ ์ด ์์ผ๋ฉด ํ์ผ ์ด๋ฆ์ด -e
์ต์ ์ DLL์ ์ด๋ฆ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
-m ๊ธฐ๊ณ
-๊ธฐ๊ณ ๊ธฐ๊ณ
๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ๋น๋ํด์ผ ํ๋ ์์คํ ์ ํ์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ์ด
์์ฑ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๊ธฐ๋ณธ ์ ๊ณต๋๋ ๊ธฐ๋ณธ ์ ํ์ด์ง๋ง ์ด ์ต์ ์
๊ทธ๊ฒ์ ์ฌ์ ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ARM์ฉ DLL์ ์์ฑํ ๋๋ง ์ ์ฉํฉ๋๋ค.
DLL์ ๋ด์ฉ์ด ์ค์ ๋ก Thumb ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฝ๋ฉ๋๋ ๊ฒฝ์ฐ ํ๋ก์ธ์.
-a
--๊ฐ์ ์ถ๊ฐ
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ๋ง๋๋ ์ค์ด๋ฏ๋ก ์น์ ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ด๋ณด๋ธ ํจ์๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ ๋ฌด์จ ๋ป์ด๋ ๊ฐ์!
-U
--๋ฐ์ค ์ถ๊ฐ
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ์์ ์ถ๊ฐํด์ผ ํ๋ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ๋ง๋๋ ์ค์ ๋๋ค.
์ ์ด๋ฆ์ ๋ฐ์ค์ ๊ธ๋ค ๋ชจ๋ ๋ด๋ณด๋ธ ๊ธฐํธ.
--์์ ๋ฐ์ค ์์
--์ ํ ๋ฐ์ค
ํ์ค ๊ธฐํธ๋ฅผ ์ ๋์ฌ๋ก ์ง์ ํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ์ง์ ํฉ๋๋ค.
--add-stdcall-๋ฐ์ค
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ์์ ์ถ๊ฐํด์ผ ํ๋ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ๋ง๋๋ ์ค์ ๋๋ค.
๋ด๋ณด๋ธ ์ด๋ฆ์ ๋ฐ์ค stdcall ๊ธฐ๋ฅ. ๋ณ์ ์ด๋ฆ ๋ฐ ๋นํ์ค ํธ์ถ
ํจ์ ์ด๋ฆ์ ์์ ๋์ง ์์ต๋๋ค. ์ด ์ต์ ์ GNU ํธํ ํ์ผ์ ๋ง๋ค ๋ ์ ์ฉํฉ๋๋ค.
MS-Windows ๋๊ตฌ๋ก ๋น๋๋ ํ์ฌ DLL์ฉ ๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ.
-k
--์ฃฝ์ด๋ค
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ์ถ๊ฐํด์๋ ์ ๋๋ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ์์ฑ ์ค์ ๋๋ค.
ํ @ . ์ด ์ซ์๋ฅผ ์์๋ผ๊ณ ํ๋ฉฐ ๋ค์์ ๋ํ๋ ๋๋ค.
์ด๋ฆ์ด ์๋ DLL์ ํจ์์ ์ก์ธ์คํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค.
-A
--์ถ๊ฐ-stdcall-๋ณ์นญ
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ๋ณ์นญ์ ์ถ๊ฐํด์ผ ํ๋ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ๋ง๋๋ ์ค์ ๋๋ค.
์๋ stdcall ๊ธฐํธ @ ๊ธฐํธ ์ธ์๋ @ .
-p
--ext-์ ๋์ฌ-๋ณ์นญ ์ ๋์ฌ
ํ๋ DLL ๋๊ตฌ ์ง์ ๋ ๋ชจ๋ DLL ๊ฐ์ ธ์ค๊ธฐ์ ๋ํ ์ธ๋ถ ๋ณ์นญ ์์ฑ
์ ๋์ฌ. ์ ํ ๊ธฐํธ๊ฐ ์๋ ์ธ๋ถ ๋ฐ ๊ฐ์ ธ์ค๊ธฐ ๊ธฐํธ ๋ชจ๋์ ๋ํด ๋ณ์นญ์ด ์์ฑ๋ฉ๋๋ค.
๋ฐ์ค.
-x
--no-idata4
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ์๋ตํด์ผ ํ๋ ๋ด๋ณด๋ด๊ธฐ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์์ฑ ์ค์ ๋๋ค.
".idata4" ์น์ . ์ด๋ ํน์ ์ด์ ์ฒด์ ์์ ํธํ์ฑ์ ์ํ ๊ฒ์ ๋๋ค.
--use-nul-์ ๋์ฌ๊ฐ ๋ถ์-๊ฐ์ ธ์ค๊ธฐ ํ ์ด๋ธ
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ์ ๋์ฌ๋ฅผ ๋ถ์ฌ์ผ ํ๋ ๋ด๋ณด๋ด๊ธฐ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ๋ง๋ค๊ณ ์์ต๋๋ค.
".idata4" ๋ฐ ".idata5"๋ ์์๋ฅผ XNUMX์ผ๋ก ๋ง๋ญ๋๋ค. ์ด๊ฒ์ ์ด์ gnu ๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋ฎฌ๋ ์ดํธํฉ๋๋ค.
"dlltool"์ ์์ฑ. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ต์ ์ ๊บผ์ ธ ์์ต๋๋ค.
-c
--no-idata5
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ์๋ตํด์ผ ํ๋ ๋ด๋ณด๋ด๊ธฐ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์์ฑ ์ค์ ๋๋ค.
".idata5" ์น์ . ์ด๋ ํน์ ์ด์ ์ฒด์ ์์ ํธํ์ฑ์ ์ํ ๊ฒ์ ๋๋ค.
-I ํ์ผ ์ด๋ฆ
--์๋ณํ๋ค ํ์ผ ์ด๋ฆ
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ๋ค์์ผ๋ก ํ์๋ ๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฒ์ฌํด์ผ ํฉ๋๋ค. ํ์ผ ์ด๋ฆ ๊ณผ
"stdout"์์ ๊ด๋ จ DLL์ ์ด๋ฆ์ ๋ณด๊ณ ํฉ๋๋ค. ์ด๊ฒ์ ๋ค์์์ ์ํํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ์ต์ ๋ฐ ์ธ์๋ก ํ์๋ ๋ค๋ฅธ ์์ ์ ์ถ๊ฐํฉ๋๋ค.
DLL ๋๊ตฌ ๊ฐ์ ธ์ค๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์๊ฑฐ๋ ์ค์ ๋ก ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ ์คํจํฉ๋๋ค.
๋์๊ด. ๋ํ๋ณด์ญ์์ค --์๋ณ-์๊ฒฉ.
--์๋ณ-์๊ฒฉ
์ ๋์์ ์์ ํฉ๋๋ค. --์๋ณํ๋ค ์ต์ , ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ณด๊ณ ๋ฉ๋๋ค.
ํ์ผ ์ด๋ฆ ๋ ์ด์์ DLL๊ณผ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
-i
--์ํธ์์ฉ
๋ค์์ ์ง์ ํฉ๋๋ค. DLL ๋๊ตฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ๊ฐ์ฒด๋ฅผ ํ์ํ๊ณ ํ์ผ์ ๋ด๋ณด๋ ๋๋ค.
ARM๊ณผ Thumb ์ฝ๋ ๊ฐ์ ์ธํฐ์ํน์ ์ง์ํ์ฌ ์์ฑํฉ๋๋ค.
-n
--๋ ธ๋ ์ญ์
๋๋ฉด DLL ๋๊ตฌ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์์ ์ด์ ๋ธ๋ฌ ํ์ผ์ ๋ณด์กดํฉ๋๋ค.
ํ์ผ. ์ด ์ต์ ์ด ๋ฐ๋ณต๋๋ฉด dlltool์ ์์ ๊ฐ์ฒด๋ ๋ณด์กดํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ๋ ํ์ผ์ ๋๋ค.
-t ์ ๋์ฌ
--temp-์ ๋์ฌ ์ ๋์ฌ
๋๋ฉด DLL ๋๊ตฌ ์ฌ์ฉ ์ ๋์ฌ ์์ ์ด์ ๋ธ๋ฌ ๋ฐ ๊ฐ์ฒด์ ์ด๋ฆ์ ๊ตฌ์ฑํ ๋
ํ์ผ. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ํ์ผ ์ ๋์ฌ๋ pid์์ ์์ฑ๋ฉ๋๋ค.
-v
--๋ง ์๊ฐ ๋ง์
dlltool์ด ์ํํ๋ ์์ ์ ์ค๋ช ํ๋๋ก ํฉ๋๋ค.
-h
--๋์
๋ช ๋ น์ค ์ต์ ๋ชฉ๋ก์ ํ์ํ ๋ค์ ์ข ๋ฃํฉ๋๋ค.
-V
--๋ฒ์ญ
dlltool์ ๋ฒ์ ๋ฒํธ๋ฅผ ํ์ํ ํ ์ข ๋ฃํฉ๋๋ค.
@ํ์ผ
๋ค์์์ ๋ช ๋ น์ค ์ต์ ์ฝ๊ธฐ ํ์ผ. ์ฝ์ ์ต์ ์ ๋ค์ ์์น์ ์ฝ์ ๋ฉ๋๋ค.
์๋์ @ํ์ผ ์ต์ . ๋ง์ฝ์ ํ์ผ ์กด์ฌํ์ง ์๊ฑฐ๋ ์ฝ์ ์ ์๋ ๊ฒฝ์ฐ ์ต์
๋ฌธ์ ๊ทธ๋๋ก ์ฒ๋ฆฌ๋๋ฉฐ ์ ๊ฑฐ๋์ง ์์ต๋๋ค.
์ต์ ํ์ผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. ๊ณต๋ฐฑ ๋ฌธ์๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
์ต์ ์์ ์ ์ฒด ์ต์ ์ ์์๋ฐ์ดํ๋ ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ต๋๋ค. ์ด๋
๋ฌธ์(๋ฐฑ์ฌ๋์ ํฌํจ)๋
๋ฐฑ์ฌ๋์์ ํจ๊ป ํฌํจ๋ฉ๋๋ค. NS ํ์ผ ์์ฒด์ ์ถ๊ฐ @๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.ํ์ผ ์ต์ ; ์ด๋
์ด๋ฌํ ์ต์ ์ ์ฌ๊ท์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์ผ๋ก avr-dlltool ์ฌ์ฉ