ÀÌÀüÆäÀÌÁö ´ÙÀ½ÆäÀÌÁö Â÷·Ê

8. make ¼öÇà ½Ã¿¡ ³ªÅ¸³ª´Â ¿¡·¯µé

make¸¦ ¼öÇàÇÏ°Ô µÇ¸é ÀÌ»óÇÑ ¿¡·¯¿¡ ´çȲÀ» ÇÏ°Ô µÇ´Â °æ¿ì°¡ ¸¹¾Æ, µµ´ëü ¾îµð°¡ Ʋ·È´ÂÁö °¨À» ¸øÀâ´Â °æ¿ì°¡ Çã´ÙÇÏ´Ù. ±×·±µ¥ make ¸Å´º¾ó¿¡µµ ¿¡·¯¿¡ ´ëÇÑ Á¾·ù¿Í ±× ´ëó ¹æ¾È¿¡ ´ëÇؼ­´Â °ÅÀÇ ¾ð±ÞÀÌ ¾ø´Â °ü°è·Î ÀÌ ºÎºÐÀº ÇÊÀÚÀÇ °æÇè¿¡ ÀÇ°ÅÇؼ­ ÀÛ¼ºÇÑ´Ù. (¿¡·¯ÀÇ ¿øÀÎ, ´ëó ¹æ¾ÈÀÌ ¸ðµÎ ´Ù Ʋ·ÈÀ» ¼öµµ ÀÖ´Ù´Â °ÍÀ» ¿°µÎ¿¡ µÎ±â ¹Ù¶ø´Ï´Ù.)

  1. Makefile:17: *** missing separator. Stop.

    MakefileÀ» ÀÛ¼ºÇÒ ¶§ ¸í·É¾î(command)ºÎºÐÀº ¸ðµÎ TAB ¹®ÀÚ·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù°í ù ¹ø° ÀåºÎÅÍ °­Á¶ÇÏ¿´´Ù. À§ÀÇ ¿¡·¯´Â TAB ¹®ÀÚ¸¦ ¾²Áö ¾Ê¾Ò±â ¶§¹®¿¡ make°¡ ¸í·É¾îÀÎÁö ¾Æ´ÑÁö¸¦ ±¸º° ¸øÇÏ´Â °æ¿ìÀÌ´Ù.

    ´ëó: 17¹ø° ÁÙ(±Ùó)¿¡¼­ ¸í·É¾î°¡ TAB ¹®ÀÚ·Î ½ÃÀÛÇÏ°Ô ¹Ù²Û´Ù.

  2. make: *** No rule to make target `io.h', needed by `read.o'. Stop.

    À§ÀÇ ¿¡·¯´Â ÀÇÁ¸ °ü°è¿¡¼­ ¹®Á¦°¡ ¹ß»ýÇ߱⠶§¹®ÀÌ´Ù. Áï read.c°¡ io.h¿¡ ÀÇÁ¸ÇÑ´Ù°í Á¤ÀǵǾî Àִµ¥, io.h¸¦ ãÀ» ¼ö ¾ø´Ù´Â ¿¡·¯ÀÌ´Ù.

    ´ëó: ÀÇÁ¸ °ü°è¿¡¼­ Á¤ÀÇµÈ io.h°¡ ½ÇÁ¦·Î Á¸ÀçÇÏ´ÂÁö Á¶»çÇØ º»´Ù. ¾ø´Ù¸é ±× ÀÌÀ¯¸¦ Çѹø »ý°¢ÇØ º»´Ù. make dep¸¦ ´Ù½Ã ½ÇÇà½ÃÄѼ­ ÀÇÁ¸ °ü°è¸¦ ´Ù½Ã »ý¼º½ÃÄÑ ÁÖ´Â °Íµµ ÇϳªÀÇ ¹æ¹ýÀÌ´Ù.

  3. Makefile:10: *** commands commence before first target. Stop.

    À§ÀÇ ¿¡·¯´Â 'ù ¹ø° Ÿ°ÙÀÌ ³ª¿À±â Àü¿¡ ¸í·É¾î°¡ ½ÃÀ۵Ǿú´Ù'´Â ¾Ö¸ÅÇÑ ¿¡·¯ ¸Þ½ÃÁöÀÌ´Ù. ÇÊÀÚ°¡ °æÇèÇÑ ÀÌ ¿¡·¯ÀÇ ¿øÀÎÀº ÁÖ·Î ±ä ¹®ÀåÀ» ¿©·¯ ¶óÀο¡ Ç¥½Ã¸¦ Çϱâ À§Çؼ­ '\'¸¦ »ç¿ëÇÒ ¶§, À̸¦ À߸ø »ç¿ëÇ߱⠶§¹®ÀÎ °Í °°´Ù. Áï '\'ºÎºÐÀº ¶óÀÎÀÇ °¡Àå ³¡¹®ÀÚ°¡ µÇ¾î¾ß Çϴµ¥ ½Ç¼ö·Î '\'µÚ¿¡ ½ºÆäÀ̽º¸¦ ¸î °³ Áý¾î³ÖÀ¸¸é ¿©Áö¾øÀÌ À§ÀÇ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.

    ´ëó: 10¹ø° ÁÙ(±Ùó)¿¡¼­ '\'¹®ÀÚ°¡ Àְŵç ÀÌ ¹®ÀÚ°¡ ¶óÀÎÀÇ °¡Àå ³¡¹®ÀÚ°¡ µÇµµ·Ï ÇÑ´Ù. Áï '\'¹®ÀÚ ´ÙÀ½¿¡ ³ª¿À´Â ±ÛÀÚ(½ºÆäÀ̽º°¡ ´ëºÎºÐ) ´Â ¸ðÁ¶¸® ¾ø¾Ö ¹ö¸°´Ù.

  4. make¸¦ ¼öÇà½ÃÅ°¸é ÀǵµÇß´ø ½ÇÇà ÆÄÀÏÀº ¾È»ý±â°í ÀÌ»óÇÑ Çൿ¸¸ ÇÑ´Ù. °¡·É make clean ÇßÀ» ¶§¿Í °°Àº ÇൿÀ» º¸ÀδÙ.

    make´Â õÀç°¡ ¾Æ´Ï¶ó´Â Á¡À» »ý°¢ÇØ¾ß ÇÑ´Ù. make´Â MakefileÀÇ ³»¿ëÀ» Àдٰ¡ ù ¹ø° Ÿ°ÙÀ¸·Î º¸ÀÌ´Â °ÍÀ» ÀÚ½ÅÀÌ »ý¼º½ÃÄÑ¾ß ÇÒ °á°ú ÆÄÀÏÀ̶ó°í »ý°¢ÇÑ´Ù. µû¶ó¼­ clean ºÎºÐÀ» MakefileÀÇ Ã¹¹ø° Ÿ°ÙÀ¸·Î Á¤ÇØ ¹ö¸®¸é À§¿Í °°Àº °á°ú°¡ ³ªÅ¸³ª°Ô µÈ´Ù.

    ´ëó: ¿¹Á¦ 7.1¿¡¼­ all À̶ó´Â ÇÊ¿ä ¾ø´Â Ÿ°ÙÀ» Çϳª ¸¸µé¾î µÎ¾ú´Ù. ÀÌ°ÍÀº make°¡ all À» ù ¹ø° Ÿ°ÙÀ¸·Î ÀνĽÃÅ°±â À§ÇÔÀ̾ú´Ù. µû¶ó¼­ ÀÚ½ÅÀÌ »ý¼º½ÃÅ°°í ½ÍÀº °á°ú ÆÄÀÏÀ» ù ¹ø° Ÿ°ÙÀÌ µÇ°Ô ÇÏ´øÁö, ¾Æ´Ï¸é ¿¹Á¦ 7.1ó·³ all°ú °°Àº ´õ¹Ì Ÿ°Ù(dummy target)À» Çϳª ¸¸µé¾î µÐ´Ù. ±×¸®°í make clean, make dep °°Àº ºÎºÐÀº MakefileÀÇ ³¡ºÎºÐ¿¡ ¸¸µé¾î µÎ´Â °ÍÀÌ ¾ÈÀüÇÏ´Ù.

  5. ÀÌ¹Ì ÄÄÆÄÀÏÇß´ø ÆÄÀÏÀ» °íÄ¡Áö ¾Ê¾Ò´Âµ¥µµ ´Ù½Ã ÄÄÆÄÀÏÇÑ´Ù.

    ÀÌ ÇൿÀº make°¡ ÀÇÁ¸ °ü°è¸¦ ¸ð¸£±â ¶§¹®ÀÌ´Ù. Áï »ç¿ëÀÚ°¡ ÀÇÁ¸ °ü°è¸¦ ¼³Á¤ÇØ ÁÖÁö ¾Ê¾Ò´Ù´Â ¸»ÀÌ µÈ´Ù. µû¶ó¼­ make´Â ¹«Á¶°Ç ¸ðµç ÆÄÀÏÀ» ÄÄÆÄÀÏÇؼ­ ½ÇÇà ÆÄÀÏÀ» ¸¸µå´Â ÀÏÀÌ ÀÚ½ÅÀÌ ÇÒ ÀÏÀ̶ó°í »ý°¢ÇÏ°Ô µÈ´Ù.

    ´ëó: ¸ñÀû ÆÄÀÏ, ¼Ò½º ÆÄÀÏ, Çì´õ ÆÄÀϵéÀÇ ÀÇÁ¸ °ü°è¸¦ ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. gccmakedep *.c ¶ó°í Çϸé MakefileÀÇ µÞºÎºÐ¿¡ ÀÚµ¿ÀûÀ¸·Î ÀÇÁ¸ °ü°è¸¦ ¸¸µé¾î ÁØ´Ù. ±×¿ÜÀÇ ´Ù¸¥ ÆÄÀϵ鿡 ´ëÇؼ­´Â »ç¿ëÀÚ°¡ ÀûÀýÇÏ°Ô ÀÇÁ¸ °ü°è¸¦ ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

    main.o : main.c io.h
    read.o : read.c io.h
    write.o : write.c io.h
    

    À§ÀÇ ¿¹Á¦´Â ù ¹ø° Àå¿¡¼­µµ Á¦½ÃÇß´ø °Çµ¥... TARGET : DEPENDENCYÀÇ Çü½ÄÀ¸·Î ÀÇÁ¸ °ü°è¸¦ ÀÛ¼ºÇÑ °ÍÀÌ´Ù. (make¿¡°Ô ÀÇÁ¸ °ü°è¸¦ ¾Ë·ÁÁÖ´Â ¹æ¹ýÀÌÁÒ)

  6. ±× ¿ÜÀÇ °æ¿ì¿¡ ´ëÇؼ­´Â °¢ÀÚ°¡ Çѹø ¿øÀΰú °á°ú¸¦ ¾Ë¾Æº¸±â ¹Ù¶õ´Ù. ±×¸®°í ÆÁÀÇ Çü½ÄÀ¸·Î ±ÛÀ» ¿Ã¸°´Ù¸é ´Ù¸¥ »ç¶÷¿¡°Ôµµ ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ÀÏ´Ü make¿¡¼­ ¿¡·¯¸¦ ³»±â ½ÃÀÛÇϸé Ãʺ¸ÀÚ´Â ¿øÀÎÁ¶Â÷ ¸ð¸£´Â °æ¿ì°¡ ¸¹±â ¶§¹®ÀÌ´Ù.

°­Á¸¦ ¸¶Ä¡¸é¼­

À̹ø make °­Á´ make À¯Æ¿¸®Æ¼¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ ÀÌÇØ¿Í °£´ÜÇÑ Makefile ÀÛ¼ºÀ» ¸ñÀûÀ¸·Î ÇÏ¿´½À´Ï´Ù. make¿¡ °üÇÑ ¸ðµç °ÍÀ» ´Ù ¼Ò°³ÇÏÁö´Â ¾Ê¾Ò½À´Ï´Ù. (°³ÀÎÀûÀÎ ´É·ÂÀÇ ÇÑ°è !!) make¸¦ ¾ÆÁÖ Àß ¾²±â À§Çؼ­´Â make ÀÚü¿¡ ´ëÇÑ Áö½Äº¸´Ù´Â À¯´Ð½º(¸®´ª½º)ÀÇ »ø ÇÁ·Î±×·¥°ú °í³­À̵µ(?)ÀÇ ¸í·É¾î±îÁö ¾Ë°í ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌÁÒ. ÇØÄ¿°¡ µÇ·Á¸é ÀÌ·± Áö½ÄÀ» ¸¹ÀÌ ¾Ë°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÇÑ°¡Áö ¾Æ½¬¿î °Ô imake¿¡ ´ëÇؼ­ ¼³¸íÀ» ¸øÇÑ °ÍÀÔ´Ï´Ù. imake¿¡ ´ëÇؼ­´Â make Áß±ÞÄÚ½º¶õ À̸§À¸·Î ¾ðÁ¨°¡ °­Á¸¦ Çغ¸µµ·Ï ÇÏÁÒ. imake´Â MakefileÀ» »ý¼º½ÃÄÑ ÁØ´Ù°í »ý°¢Çϼ¼¿ä)

Áö±Ý make ´ÙÀ½ÀÇ °­Á·Π¹»ÇØ¾ß ÇÒÁö °í¹Î ÁßÀÔ´Ï´Ù. ¿ì¼± X °­Á¸¦ ÇϽô ºÐ(¾ÆÁ÷Àº Á¶¿ëÇϳ׿ä)ÀÇ °­ÁÂÀÇ ÀÌÇظ¦ ³ôÀ̱â À§Çؼ­ XÀÇ °³³äÀ» 2ȸ Á¤µµÀÇ °­Á·ΠÇÒ »ý°¢ÀÔ´Ï´Ù. X °¡ ¿Ö X ÀÌ°í ¾î¶² Ư¡À» °¡Áö°í ÀÖ´ÂÁö Çѹø »ìÆ캸±â·Î ÇÏÁÒ.


ÀÌÀüÆäÀÌÁö ´ÙÀ½ÆäÀÌÁö Â÷·Ê