´ÙÀ½Àº make
¿¡ ÀÇÇؼ »ý¼ºµÉ ¼ö ÀÖ´Â °¡Àå ÀϹÝÀûÀÎ ¿¡·¯µéÀÇ
¸®½ºÆ®ÀÌ¸ç ±×°ÍµéÀÌ ÀǹÌÇÏ´Â ¹Ù¿Í ±×°ÍµéÀ» °íÄ¡´Â ¹æ¹ý¿¡ ´ëÇÑ
Á¤º¸ÀÌ´Ù.
¶§¶§·Î make
¿¡·¯µéÀº, Ưº°È÷ ¸í·É ½ºÅ©¸³Æ® ¶óÀο¡¼ -
Á¢µÎ»ç°¡ ÀÖÀ» ¶§³ª ¸í·É ¶óÀÎ ¿É¼ÇÀ¸·Î½á -k
°¡ ÀÖÀ» ¶§, Ä¡¸íÀûÀÎ
°ÍÀÌ ¾Æ´Ï´Ù. Ä¡¸íÀûÀÎ ¿¡·¯µéÀº ***
¹®ÀÚ¿ÀÌ ±× ¾Õ¿¡ ºÙ´Â´Ù.
¿¡·¯ ¸Þ½ÃÁöµéÀº ¸ðµÎ ÇÁ·Î±×·¥(º¸Åë `make')ÀÇ À̸§ÀÌ ¾Õ¿¡ ºÙ°Å³ª, ¿¡·¯°¡ makefile ¾È¿¡ ÀÖ´Â °ÍÀ̶ó¸é ¹®Á¦¸¦ ´ã°í ÀÖ´Â ÆÄÀÏ°ú ¶óÀγѹö°¡ ¾Õ¿¡ ºÙ´Â´Ù.
¾Æ·¡ Å×ÀÌºí¿¡¼ ÀÌ·± °øÅë Á¢µÎ»çµéÀÌ ºüÁ®ÀÖ´Ù.
make
¿¡·¯µéÀÌ ÀüÇô ¾Æ´Ï´Ù. ±×µéÀº
make
°¡ ¸í·É ½ºÅ©¸³Æ®ÀÇ ÀϺηνá È£ÃâÇÑ ÇÁ·Î±×·¥ÀÌ, make
°¡ ½ÇÆзΠÇؼ®ÇÏ´Â 0ÀÌ ¾Æ´Ñ
¿¡·¯ ÄÚµå (`Error NN') ¸¦ ¸®ÅÏÇϰųª ´Ù¸¥ ÀÌ»óÇÑ
½ºÅ¸ÀÏ·Î(¾î¶² Á¾·ùÀÇ ½Ã±×³Î°ú ÇÔ²²) Á¾·áÇÏ¿´´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
***
°¡ ¸Þ½ÃÁö¿¡ ºÙ¾î ÀÖÁö ¾ÊÀ¸¸é ¼ºêÇÁ·Î¼¼½º°¡ ½ÇÆÐÇßÁö¸¸
makefile ÀÇ ±× ±ÔÄ¢ÀÌ Æ¯¼ö ¹®ÀÚ -
¸¦ ¾Õ¿¡ ´Þ°í ÀÖ¾î¼
make
°¡ ±× ¿¡·¯¸¦ ¹«½ÃÇÑ °ÍÀÌ´Ù.
make
ÀÇ ÀϹÝÀûÀÎ "Huh?" ¿¡·¯ ¸Þ½ÃÁöÀÌ´Ù. ÀÌ°ÍÀº
make
°¡ makefile ÀÇ ÀÌ ¶óÀÌÀ» ÆĽÌÇÏ¸é¼ ¿Ïº®ÇÏ°Ô ¼º°øÇÏÁö
¸øÇß´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ°ÍÀº ±âº»ÀûÀ¸·Î "¹®¹ý ¿¡·¯(syntax error)"
¸¦ ÀǹÌÇÑ´Ù.
ÀÌ·± ¸Þ½ÃÁö°¡ ³ª¿À´Â °¡Àå ÀϹÝÀûÀÎ ÀÌÀ¯µé ÁßÀÇ Çϳª´Â ¿©·¯ºÐÀÌ (¶Ç´Â
¸¹Àº MS-Windows ¿¡µðÅ͵éÀÇ °æ¿ì¿Í ºñ½ÁÇÏ°Ô, ¿©·¯ºÐÀÇ ¿¡µðÅÍ°¡) TAB
¹®ÀÚ ´ë½Å¿¡ °ø¹éµé·Î ¸í·É ½ºÅ©¸³Æ®µéÀ» µé¿©¾²±âÇÏ·Á°í ÇÏ´Â
°ÍÀÌ´Ù. ¸í·É ½ºÅ©¸³Æ®¿¡ ÀÖ´Â ¸ðµç ¶óÀÎÀº ¹Ýµå½Ã TAB ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â
°ÍÀ» ±â¾ïÇÏÀÚ. 8°³ÀÇ °ø¹éÀº Àǹ̰¡ ¾ø´Ù.
make
¸í·É(º¯¼ö ÇÒ´ç°ú °°Àº)ó·³ º¸ÀÌÁö ¾Ê´Â´Ù. ¸í·É
½ºÅ©¸³Æ®µéÀº Ç×»ó ¾î¶² Ÿ°Ù°ú ¿¬°áµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.
µÎ¹ø° ÇüÅ´ ±× ¶óÀÎÀÌ Ã¹¹ø° °ø¹é¹®ÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ·Î½á ¼¼¹ÌÄÝ·ÐÀ»
°¡Áø´Ù¸é »ý¼ºµÈ´Ù; make
´Â ÀÌ°ÍÀ», ¾î¶² ±ÔÄ¢ÀÇ "target:
dependency" ¼½¼ÇÀ» ±×³É ¶°³µ´Ù´Â °ÍÀ¸·Î Çؼ®ÇÑ´Ù.
make
°¡ Ÿ°ÙÀ» ºôµåÇÒ ÇÊ¿ä°¡ ÀÖ´Ù°í ÆÇ´ÜÇßÁö¸¸ makefile
¾È¿¡¼ ±×·¸°Ô ÇÏ´Â °Í¿¡ ´ëÇÑ, ¸í½ÃÀû ¶Ç´Â ¹¬½ÃÀû(µðÆúÆ® ±ÔÄ¢
µ¥ÀÌÅͺ£À̽º¸¦ Æ÷ÇÔÇؼ) ±ÔÄ¢µé(instructions)µµ ãÀ» ¼ö ¾ø´Ù´Â
°ÍÀ» ÀǹÌÇÑ´Ù.
±× ÆÄÀÏÀÌ ºôµåµÇ±â¸¦ ¿øÇÑ´Ù¸é ±× Å¸°ÙÀÌ ºôµåµÇ´Â ¹æ¹ýÀ» ¼³¸íÇÏ´Â
±ÔÄ¢À» Ãß°¡ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ ¹®Á¦ÀÇ ´Ù¸¥ °¡´É¼ºÀº makefile À»
¿ÀÀÚ(±× ÆÄÀÏ À̸§ÀÌ À߸øµÇ¾ú´Ù)Ç߰ųª ¼Ò½º Æ®¸®°¡ À߸øµÈ °æ¿ìÀÌ´Ù(±×
ÆÄÀÏÀÌ ºôµåµÉ °ÍÀ¸·Î »ý°¢µÈ °ÍÀÌ ¾Æ´Ï°í ´ÜÁö Á¾¼Ó¹°ÀÌ´Ù).
make
°¡ ÀоîµéÀÏ makefile µéÀ» ãÀ»¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÈÄÀÚ´Â ¾î¶²
makefile µéÀÌ Ã£¾ÆÁ³À¸³ª µðÆúÆ® Ÿ°ÙÀÌ ¾ø°í ¾î¶² °Íµµ ¸í·ÉÇà¿¡¼
ÁÖ¾îÁöÁö ¾Ê¾Ò´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌµé °æ¿ì¿¡ GNU make
´Â
¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â´Ù.
make
´Â Ÿ°Ù Çϳª¿¡ ´ëÇؼ ´Ü Çѹø¸¸ ¸í·ÉµéÀÌ ÁöÁ¤µÇ´Â °ÍÀ»
Çã¶ôÇÑ´Ù(´õºí-ÄÝ·Ð ±ÔÄ¢µéÀ» Á¦¿ÜÇÏ°í). ÀÌ¹Ì ¸í·ÉµéÀ» °¡Áöµµ·Ï Á¤ÀǵÈ
Ÿ°Ù¿¡ ´ëÇؼ ¸í·ÉµéÀ» ´Ù½Ã ÁÖ¸é ÀÌ °æ°í°¡ ¹ßÇàµÇ°í µÎ¹ø° ¸í·ÉµéÀº
ù¹ø° °ÍÀ» ¿À¹ö¶óÀ̵åÇÒ °ÍÀÌ´Ù.
make
°¡ Á¾¼Ó¼º ±×·¡ÇÁ¿¡¼ ·çÇÁ¸¦ ¹ß°ßÇß´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù: Ÿ°Ù
xxx ÀÇ Á¾¼Ó¹° yyy, ±×¸®°í ÀÌ°ÍÀÇ Á¾¼Ó¹°µé µîµî À» ÃßÀûÇÑ
ÈÄ ±×µéÁß Çϳª°¡ xxx ¿¡ ´Ù½Ã Á¾¼ÓÇÑ´Ù´Â ÀǹÌÀÌ´Ù.
make
º¯¼ö xxx ¸¦ Á¤ÀÇÇß´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ°ÍÀº
Çã¿ëµÇÁö ¾Ê´Â´Ù; ´Ü¼ø-È®Àå º¯¼ö (:=
) ¸¦ »ç¿ëÇϵçÁö ¾Æ´Ï¸é Ãß°¡
¿¬»êÀÚ (+=
) ¸¦ »ç¿ëÇÏÀÚ.
%
) ¸¦
´ã°í ÀÖÁö ¾Ê´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
Go to the first, previous, next, last section, table of contents.