ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)์— ๋Œ€ํ•œ ์ดํ•ด
    ๊ณต๋ถ€/์–ธ์–ด 2021. 7. 26. 23:54
    728x90

    ์„œ๋ก 

    ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ๋งŽ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ฉด ์ •ํ™•ํ•œ ๊ฐœ๋…์€ ๋ชฐ๋ผ๋„ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ๋„๊ตฌ๋ผ๋Š” ๊ฒƒ์€ ์–ด๋ ดํ’‹์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์‚ฌ์‹ค ์ด ์ •๋„๋งŒ ์ดํ•ดํ•ด๋„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ์—†๊ฒ ์ง€๋งŒ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™•์žฅ์ž ์ข…๋ฅ˜(*.dll, *.lib, *so, *a)๊ฐ€ ์™œ ๋‹ค์–‘ํ•œ์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผ, ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์—†์–ด์„œ ์™œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š”์ง€์™€ ๊ฐ™์€ ๊ถ๊ธˆ์ฆ์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.

    โ€ป ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋ ค๋ฉด ์ปดํŒŒ์ผ ๊ณผ์ •, ํŠนํžˆ ๋งํ‚น ๊ณผ์ •์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

     

    ์ปดํŒŒ์ผ(Compile)์— ๋Œ€ํ•œ ์ดํ•ด

    ์„œ๋ก  C, C++, Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ดค์œผ๋ฉด ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œ(Build) ํ˜น์€ ์ปดํŒŒ์ผ(Compile)ํ•ด์„œ ์‹คํ–‰ํ•ด๋ดค๊ฑฐ๋‚˜ ์ฝ”๋“œ๋ฅผ ์ž˜๋ชป ์ž‘์„ฑํ•˜์—ฌ ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋˜ ๊ฒฝํ—˜์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ ์ปดํŒŒ์ผ์ด

    bradbury.tistory.com

     


    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library) ์ •์˜

    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๋“ค์˜ ๋ฌถ์Œ์ด๋‹ค. ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ์˜คํ”„์ ํŠธ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์กด์žฌํ•˜๋ฉฐ ์ปดํŒŒ์ผ ๊ณผ์ •(๋งํ‚น ๊ณผ์ •)์—์„œ ๋งํ‚น๋˜์–ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ด๋ฃฌ๋‹ค.

     

    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์žฅ์ 

    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๋Š” ์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    1. ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค.

    2. ์ฝ”๋“œ์˜ ๋‚ด์šฉ์„ ์ˆจ๊ฒจ ๊ธฐ์ˆ  ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

    3. ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์–ด ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

    4. ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋˜์–ด ์žˆ์–ด ๋งํ‚น๋งŒ ํ•˜๋ฉด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค)

     

    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ํ—ค๋” ํŒŒ์ผ(.h)์ด ํ•„์š”ํ•œ ์ด์œ 

    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” #include ์ง€์‹œ๋ฌธ์„ ํ†ตํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ—ค๋” ํŒŒ์ผ์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.

    ํ—ค๋” ํŒŒ์ผ์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ง์ปค๊ฐ€ ์ตœ์ข… ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ํ•จ์ˆ˜์˜ ์‹ฌ๋ณผ์„ ํ•„์š”๋กœ ํ•˜๋Š”๋ฐ ํ—ค๋” ํŒŒ์ผ์ด ์‹ฌ๋ณผ์„ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

    ์ฆ‰, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ—ค๋” ํŒŒ์ผ์ด ๊ผญ ํ•„์š”ํ•˜๋‹ค.

     

     


    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ข…๋ฅ˜

    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ •์  ๋งํ‚น ๋ฐฉ์‹๊ณผ ๋™์  ๋งํ‚น ๋ฐฉ์‹์— ๋”ฐ๋ผ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(=๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

    ๊ฒฐ๊ตญ, ๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ •์˜ ๋ฐ ์žฅ๋‹จ์ ์€ ๊ฐ ๋งํ‚น ๋ฐฉ์‹์˜ ์ •์˜ ๋ฐ ์žฅ๋‹จ์ ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

     


    ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Static Link Library) ์ •์˜

    ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ •์  ๋งํ‚น(Static Linking) ๊ณผ์ •์—์„œ ๋ง์ปค๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”๋กœ ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ฐพ์•„ ์‹คํ–‰ ํŒŒ์ผ์— ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ์‹์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

    ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™•์žฅ์ž๋Š” ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ๋Š” *.lib, ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ๋Š” *.a ์ด๋‹ค,

    โ€ป *.lib๋ผ๊ณ  ๋ฌด์กฐ๊ฑด ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•„๋‹ˆ๋‹ค. (์•„๋ž˜ ์•”์‹œ์  ๋งํ‚น ์ฐธ๊ณ )

     

    ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์žฅ์ 

    ์‹คํ–‰ ํŒŒ์ผ์ด ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‹คํ–‰ํ•  ๋•Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š” ์—†๋‹ค. ์ฆ‰, ์‹คํ–‰ ํŒŒ์ผ๋งŒ ์žˆ์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š” ๋งŒํผ ์ด์‹์„ฑ์ด ์ข‹๊ณ  ์•ˆ์ •์ ์ด๋‹ค.

     

    ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์ 

    ํ•˜์ง€๋งŒ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

    1. ์‹คํ–‰ ํŒŒ์ผ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ด์„œ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ํŒŒ์ผ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜์—ฌ ์žฌ๋ฐฐํฌํ•ด์•ผ ํ•œ๋‹ค.

    2. ์‹คํ–‰ ํŒŒ์ผ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋งŒํผ ์‹คํ–‰ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ปค์ง„๋‹ค.

    3. ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ์‹คํ–‰๋  ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ์ค‘๋ณต๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ๋‚ญ๋น„ํ•œ๋‹ค.

    4. ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ „์ฒด๋ฅผ ๋งํ‚นํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋“ค๊นŒ์ง€ ์ „๋ถ€ ๋‹ค ํ”„๋กœ๊ทธ๋žจ์— ํฌํ•จํ•œ๋‹ค.

    ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

     


    ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(DLL, Dynamic Link Library, Shared Library)

    ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋™์  ๋งํ‚น(Dynamic Linking) ๊ณผ์ •์—์„œ ๋ง์ปค๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ๋‚ด์šฉ์˜ ์ฃผ์†Œ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ๋Ÿฐํƒ€์ž„์— ์‹คํ–‰ ํŒŒ์ผ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์œ„์น˜ํ•  ๋•Œ ํ•ด๋‹น ์ฃผ์†Œ๋กœ ๊ฐ€์„œ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

    ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™•์žฅ์ž๋Š” ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ๋Š” *.dll, ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ๋Š” *.so ์ด๋‹ค.

     

    ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์žฅ์ 

    ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์‹คํ–‰ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง€๊ณ  ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“๊ณ  ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๋˜ํ•œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ปดํŒŒ์ผํ•  ํ•„์š” ์—†์ด ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜์—ฌ ์žฌ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์ 

    ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ์žฅ์ ๋งŒ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

    ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹คํ–‰ ํŒŒ์ผ์€ ์‹คํ–‰ํ•  ๋•Œ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋งŒ์•ฝ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ๋Œ€๋กœ ๋งํฌ๋˜์–ด ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฒ„์ „์ด ๋งž์ง€ ์•Š๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์‹คํ–‰์ด ์•ˆ ๋  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์™ธ๋ถ€ ์˜์กด๋„๊ฐ€ ์ƒ๊ธฐ๋ฉฐ ์ด์‹์„ฑ์ด ๋‚ฎ์€ ๋‹จ์ ์ด ์žˆ๋‹ค.

    ๋˜ํ•œ, ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋งค๋ฒˆ ํ”„๋กœ๊ทธ๋žจ ์˜์—ญ์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋กœ ์ด๋™ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜์—ฌ ์•ฝ๊ฐ„์˜ ์„ฑ๋Šฅ ๊ฐ์†Œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

     

     


    DLL์˜ ๋ถ„๋ฅ˜

    ๋†€๋ž๊ฒŒ๋„ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ํ•œ๋ฒˆ ๋” ์ข…๋ฅ˜๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

    ์œˆ๋„์šฐ์—์„œ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ *dll ํŒŒ์ผ์ด๋ผ ๋ถ€๋ฅด๋Š”๋ฐ ์‹คํ–‰ ํŒŒ์ผ์—์„œ *dll ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์•”์‹œ์  ๋งํ‚น๊ณผ ๋ช…์‹œ์  ๋งํ‚น์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

     

    ์•”์‹œ์  ๋งํ‚น(Implicit Linking)

    ์•”์‹œ์  ๋งํ‚น์€ ์‹คํ–‰ ํŒŒ์ผ ์ž์ฒด์— ์–ด๋–ค *dll์˜ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฒ ๋‹ค๋Š” ์ •๋ณด๋ฅผ ํฌํ•จ์‹œํ‚ค๊ณ  ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์„ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๋ฉด์„œ ํ•ด๋‹น *dll์„ ๋กœ๋“œํ•˜๋ฉฐ *dll์— ์ •์˜๋œ ํ•จ์ˆ˜๋ฅผ ๋งˆ์น˜ ์ž์‹ ์˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์‹คํ–‰ ํŒŒ์ผ์— ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” *lib ํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋•Œ, *lib ํŒŒ์ผ์€ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์•”์‹œ์  ๋งํ‚น์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์‹ฌ๋ณผ์ด ๋“ค์–ด์žˆ๋Š” *.lib ํŒŒ์ผ๋กœ ๋™์  ๋งํ‚น ๊ณผ์ •์— ๊ผญ ํ•„์š”ํ•˜๋‹ค.

    ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

    ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ *dll ํŒŒ์ผ์ด ๋กœ๋“œ๋˜๋ฏ€๋กœ ์‹คํ–‰ ์‹œ ์—ฐ๊ฒฐ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

     

    ๋ช…์‹œ์  ๋งํ‚น(Explicit Linking)

    ๋ช…์‹œ์  ๋งํ‚น์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ *.dll ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ณ  ๋™์ ์œผ๋กœ ์›ํ•˜๋Š” ํ•จ์ˆ˜๋งŒ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ๋Š” ํ˜ธ์ถœํ•  ํ•จ์ˆ˜์˜ ํฌ์ธํ„ฐ๋ฅผ ์–ป์–ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๋งํ‚น ๊ณผ์ •์—์„œ *.dll์˜ ํ•จ์ˆ˜ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— *.lib ํŒŒ์ผ์ด ํ•„์š” ์—†๋‹ค.

    ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ํ•จ์ˆ˜๋งŒ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋“ค๊นŒ์ง€ ์ „๋ถ€ ๋‹ค ํ”„๋กœ๊ทธ๋žจ์— ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์ž์›์„ ์•„๋‚„ ์ˆ˜ ์žˆ๋‹ค.

    ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์— *.dll ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ฝํžˆ๋ฏ€๋กœ ์‹คํ–‰ ์ค‘ ์—ฐ๊ฒฐ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

     

     


    ๊ฒฐ๋ก 

    ์œ„ ๋‚ด์šฉ์„ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ์ด์ œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™•์žฅ์ž๊ฐ€ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    *.dll : ์œˆ๋„์šฐ ํ™˜๊ฒฝ์˜ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    *.lib : ์œˆ๋„์šฐ ํ™˜๊ฒฝ์˜ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    *so : ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์˜ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    *a : ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์˜ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    ๋˜ํ•œ, *.lib๋ผ๊ณ  ๋ฌด์กฐ๊ฑด ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์•”์‹œ์  ๋งํ‚น์— ํ•„์š”ํ•œ ์‹ฌ๋ณผ์ด ๋“ค์–ด์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ผ ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ์„ ๋ช…์‹ฌํ•˜์ž.

     

    ๋๐Ÿค”

    728x90

    '๊ณต๋ถ€ > ์–ธ์–ด' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    ์ปดํŒŒ์ผ(Compile)์— ๋Œ€ํ•œ ์ดํ•ด  (8) 2021.08.28

    ๋Œ“๊ธ€

Designed by Tistory.