Skip to content

Latest commit

ย 

History

History
41 lines (15 loc) ยท 1.71 KB

Compiler.md

File metadata and controls

41 lines (15 loc) ยท 1.71 KB

์ปดํŒŒ์ผ๋Ÿฌ๋ž€?

ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์“ฐ์—ฌ ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์˜ฎ๊ธฐ๋Š” ํ”„๋กœ๊ทธ๋žจ

์†Œ์Šค ์ฝ”๋“œ์—์„œ ๋ชฉ์  ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ณผ์ •์„ ํ•จ

์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ์„ ์ฝ์–ด์„œ ์ฆ‰์‹œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€๋Š” ๊ตฌ๋ถ„๋จ

์ปดํŒŒ์ผ๋Ÿฌ์˜ ์‹คํ–‰ ๋‹จ๊ณ„

  1. ๊ตฌ๋ฌธ ๋ถ„์„ : ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ์„ ์ฝ์–ด ๊ฐœ๋ณ„ ๋ฌธ๋ฒ•์š”์†Œ ๋‹จ์œ„๋กœ ์ž๋ฅธ ํ›„, ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑ. ๋ฌธ๋ฒ•์— ๋งž์ง€ ์•Š๋Š” ์†Œ์Šค ์ฝ”๋“œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ ค์คŒ.

  2. ์ตœ์ ํ™” : ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ตœ์ ํ™” ์ˆ˜ํ–‰. ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋ฅผ ์‹๋ณ„ํ•˜๊ฑฐ๋‚˜ ์ƒ์ˆ˜ ํ‘œํ˜„์‹์„ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๋ฃจํ”„ ํ’€๊ธฐ ๋“ฑ์„ ์ง„ํ–‰

  3. ์ฝ”๋“œ ์ƒ์„ฑ : ์ตœ์ ํ™”๋œ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๋ชฉ์  ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑ. ๋ชฉํ‘œ ์ฝ”๋“œ๊ฐ€ ๊ธฐ๊ณ„์–ด์ผ ๊ฒฝ์šฐ, ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น, ์—ฐ์‚ฐ ์ˆœ์„œ ๋ฐ”๊พธ๊ธฐ ๋“ฑ ํ•˜๋“œ์›จ์–ด์— ๋งž๋Š” ์ตœ์ ํ™”๊ฐ€ ์ง„ํ–‰

  4. ๋งํ‚น : ๋ชฉ์  ์ฝ”๋“œ๊ฐ€ ๊ธฐ๊ณ„์–ด์ผ ๊ฒฝ์šฐ, ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชฉ์  ์ฝ”๋“œ๋ฅผ ๋ฌถ์–ด ํ•˜๋‚˜์˜ ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒ์„ฑ.

iOS์—์„œ์˜ Linker Flag

์„œ๋“œ ํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์“ฐ๋Š” build setting

  • ObjC : Objective-C ํด๋ž˜์Šค๋‚˜ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ •์˜๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์†ํ•œ ๊ฐ์ฒด ํŒŒ์ผ๋“ค์„ ๋ชจ๋‘ ์ ์žฌํ•ด์ฃผ๋Š” ํ”Œ๋ž˜๊ทธ

  • all_load : linker๊ฐ€ Object-C Code๊ฐ€ ์žˆ๋Š”์ง€ ์ƒ๊ด€ ์—†์ด ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฐ์ฒด๋ฅผ ๋กœ๋“œํ•˜๋ผ๋Š” ํ”Œ๋ž˜๊ทธ

  • force_load : ๋’ค์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ๊ฐ€ ๋ถ™์Œ. ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ๊ฐ•์ œ๋กœ ๋กœ๋“œํ•˜๋ผ๋Š” ํ”Œ๋ž˜๊ทธ

์ฐธ๊ณ