ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
¸¸¾à 5°³ÀÇ ½î¾²·Î ÀÌ·ç¾îÁø ÇÁ·Î±×·¥À» Å×½ºÆ® Çϱâ À§Çؼ ÄÄÆÄÀÏÀ» ÇÑ´Ù¸é ´ÙÀ½°ú °°Àº ¹æ½ÄÀ» »ç¿ëÇØ¾ß ÇÒ°ÍÀÌ´Ù. $ gcc -c 1.c $ gcc -c 2.c $ gcc -c 3.c $ gcc -c 4.c $ gcc -c 5.c $ gcc -o myprg 1.o 2.o 3.o 4.o 5.o
¸Å¹ø myprg ¶ó´Â ½ÇÇàÆÄÀÏÀ» ¸¸µé¾î ³»±â À§Çؼ À§ÀÇ ¹æ½Ä´ë·Î ÄÄÆÄÀÏ ÇÏ´Â°Ç º¸Åë ÀÏÀÌ ¾Æ´Ï´Ù. ±×³ª¸¶ À§ÀÇ °æ¿ì´Â °£´ÜÇÑ ÇüÅÂÀÌ°í °¢Á¾ gcc ¿É¼Ç, library ¸µÅ© include ÆÄÀÏÀÌ ÆÐ½ºÁöÁ¤µîÀÌ µé¾î°¡°Ô µÇ¸é, ÄÚµùÇÏ´Â ½Ã°£º¸´Ù ÄÄÆÄÀÏ ÇÏ´Â ½Ã°£ÀÌ ´õ°É¸®´Â »çŰ¡ ¹ú¾îÁú°ÍÀÌ´Ù.
ÀÌ·¯ÇÑ ÀÏ·ÃÀÇ ÀÛ¾÷À» ÀÚµ¿È ½ÃÄÑÁÖ´Â ÇÁ·Î±×·¥ÀÌ ÀÖÀ¸¸é ÁÁÀ»°ÍÀÌ´Ù¶ó°í ´©±º°¡ »ý°¢À» Çß°í ±×·¡¼ ³ª¿Â°Ô make ¶ó´Â µµ±¸(ÇÁ·Î±×·¥) ÀÌ´Ù. make ¸¦ »ç¿ëÇϸé À§ÀÇ ¸ðµç ÀÏ·ÃÀÇ ÄÄÆÄÀÏÀ» ÀÚµ¿ÀûÀ¸·Î °ü¸® ÇØÁÙ»Ó¸¸ ¾Æ´Ï¶ó, ÃÖ±Ù¿¡ ¹Ù²ï ½î¾²¸¸ ÄÄÆÄÀÏÇØ¼ ¸µÅ©½ÃÄÑÁÖ´Â ÀϱîÁö ¾Ë¾Æ¼ ó¸®ÇÑ´Ù.
¿¹¸¦ µé¾î 1.c ¸¦ ¼öÁ¤Çß´Ù¸é 2.c, 3.c 4.c, 5.c ´Â ±×´ë·Î µÎ°í ´ÜÁö 1.c ¸¸À» ÄÄÆÄÀÏ ÇØ¼ object ÆÄÀÏÀ» ¸¸µé°í, ³ª¸ÓÁö ±âÁ¸¿¡ ¸¸µé¾îÁ® ÀÖ´ø object ÆÄÀϰú ¸µÅ©¸¦ ½ÃÄÑÁØ´Ù. ±×·¯¹Ç·Î ½Ã°£À» Å©°Ô Àý¾àÇÒ¼ö ÀÖÀ¸¸ç, ÇÁ·Î±×·¡¸Ó´Â "¾î¶»°Ô ÄÄÆÄÀÏ µÉ °ÍÀΰ¡" ¶ó´Â ºÎ¼öÀûÀÎ °Í¿¡ ½Å°æ¾²Áö ¾Ê°í ÄÚµù¿¡¸¸ Àü³äÇÒ¼ö ÀÖ´Ù.
object ÆÄÀÏÀ» ¸¸µé°í À̵éÀ» link ½ÃÄѼ ÃÖÁ¾ ½ÇÇà ÆÄÀÏÀ» ¸¸µé±â À§Çؼ, ÇÁ·Î±×·¡¸Ó(:12_´Â º¸Åë ¾î¶² source ¸¦ ÇÊ¿ä·Î Çϰí, ¾î¶² Çì´õÆÄÀÏÀÌ ÇÊ¿ä·Î ÇÏ´ÂÁö, ±×¸®°í ¾î¶² ¶óÀ̺귯¸®°¡ ÇÊ¿ä·Î Çϰí ÀÖ´ÂÁö, ÃÖÁ¾ÀûÀ¸·Î ¸¸µé¾îÁú ½ÇÇàÆÄÀÏÀÇ À̸§ÀÌ ¹«¾ùÀÎÁö¸¦ ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ¸¶Âù°¡Áö·Î make ¿ª½Ã ÄÄÆÄÀÏ ±ÔÄ¢ À» ¾Ë¾Æ¾ß ÇÒÇʿ䰡 ÀÖ´Ù.
ÀÌ·¯ÇÑ ±ÔÄ¢À» Á¤ÇÑ ¼³Á¤ÆÄÀÏÀ» ÂüÁ¶ÇØ¾ß Çϴµ¥ º¸Åë Makefile ¶ó´Â À̸§ÀÇ ÆÄÀÏÀ» ÂüÁ¶ÇÑ´Ù. Makefile ¿¡´Â ÇØ´ç ½î¾²¸¦ ÄÄÆÄÀÏ Çϱâ À§Çؼ, ¾î¶² ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇØ¾ß ÇÏ´ÂÁö, ÄÄÆÄÀÏÈÄ ¾î¶² ½ÇÇàÆÄÀÏ(Target) ¸¦ ¸¸µé¾î¾ß ÇÏ´ÂÁö, °¢ object ÆÄÀÏÀÇ ÀÇÁ¸¼º°ü°è´Â ¾î¶°ÇÑÁö, ÄÄÆÄÀϽà ¾î¶² Çì´õÆÄÀϵð·ºÅ丮¿Í, ¶óÀ̺귯¸®¸¦ ÂüÁ¶ÇÒÁö µî¿¡ ´ëÇÑ ±ÔÄ¢À» ´ã°í ÀÖ´Ù. ´ÙÀ½Àº Makefile ÀÇ °£´ÜÇÑ ÇüÅÂÀÌ´Ù. 001 CC = gcc 002 CXX = g++ 003 CFLAGS = -pipe -Wall -W -O2 -DNO_DEBUG 004 CXXFLAGS = -pipe -Wall -W -O2 -DNO_DEBUG 005 INCPATH = -I/usr/local/include/mysql 006 LINK = g++ 007 LIBS = -L/usr/local/lib/mysql -lmysqlclient -lcrypt 008 009 # FILE 010 SOURCES = main.cc \ 011 sql.cc 012 013 OBJECTS = main.o \ 014 sql.o 015 016 TARGET = myprg 017 018 # Implict rules 019 .SUFFIXES:.cc .c 020 021 .cc.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< 022 .c.o: $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< 023 024 # build rule 025 026 all: $(TARGET) 027 $(TARGET): $(OBJECTS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) 028 029 clean: -rm -f $(OBJECTS) $(TARGET) \ 030 -rm -f core 031 032 # complie 033 main.o: main.cc 034 sql.o : sql.cc 035
¾ð¶æ º¸¸é ½©½ºÅ©¸³Æ® ¾ð¾î¿Í À¯»çÇÑ ÇÔÀ» ¾Ë¼ö ÀÖÀ»°ÍÀÌ´Ù. make ¿¡¼´Â make ÆÄÀÏÀÇ ³»¿ëÀ» ½±°í °£ÆíÇÏ°Ô ÀÛ¼ºÇϵµ·Ï Çϱâ À§Çؼ "¸ÅÅ©·Î" ¸¦ Á¦°øÇÑ´Ù. ¸ÅÅ©·ÎÀÇ »ç¿ëÀº shell ¿¡¼ÀÇ º¯¼ö»ç¿ë°ú ¸Å¿ì ºñ½ÁÇÏ´Ù. ¸ÅÅ©·Î¸í = ¸ÅÅ©·Î°ª»ç¿ë¹æ¹ýÀº $(¸ÅÅ©·Î¸í) ½ÄÀ¸·Î ÇÊ¿äÇÒ¶§ ºÒ·¯¾²¸é µÈ´Ù. ¿©·¯ÁÙ¿¡ °ÉÃļ ¸ÅÅ©·Î°ªÀ» Á¤ÀÇÇØ¾ß ÇÒ °æ¿ì ¿ª½½·¡½¬(\)·Î ´ÙÀ½ÁÙ·Î °è¼ÓµÊÀ» ¸í½ÃÇØÁÖ¾î¾ß ÇÑ´Ù.
1 ¹øÁÙ ºÎÅÍ 16 ¹øÁÙ±îÁö´Â °¢Á¾ ¸ÅÅ©·Î¸¦ ÁöÁ¤ÇßÀ½À» ¾Ë¼ö ÀÖ´Ù.
19 ¹øÁÙÀÇ .SUFFIXES ´Â ÆÄÀÏÀÇ È®ÀåÀÚ¿¡ µû¸¥ ÄÄÆÄÀÏ ±ÔÄ¢À» Á¤ÀÇÇØ ÁÖ±â À§Çؼ make ¿¡¼ ³»ºÎÀûÀ¸·Î Á¦°øÇϴ Ű¿öµå·Î, ÄÄÆÄÀÏ ±ÔÄ¢À» Á¤ÀÇÇÒ ÆÄÀÏÀÇ È®ÀåÀÚ¸¦ Àû¾îÁØ´Ù.
21-22 ¹øÂ° ÁÙÀº .SUFFIXES ¿¡¼ Á¤ÀÇÇÑ È®ÀåÀÚ¸¦ À§ÇÑ ÄÄÆÄÀÏ ±ÔÄ¢À» Àû¿ëÇÑ °ÍÀÌ´Ù. 21 ¹øÂ°ÁÙÀº .cc ¿¡ ´ëÇÑ ºôµå±ÔÄ¢Àº ":" ÀÌÇÏÀÇ ±ÔÄ¢¿¡ µû¶ó¼ ÄÄÆÄÀÏÀ» Çϰí, ÄÄÆÄÀÏÈÄ ¸¸µé¾îÁö´Â object ÆÄÀÏÀº È®ÀåÀÚ ".o"¸¦ ºÙ¿©¶ó´Â ¶æÀÌ´Ù. 21 ¹øÂ° ÁÙÀ» ¸ÅÅ©·Î ġȯÀ» ÇØ¼ ¿ÏÀüÇÑ ¸í·É¾î·Î ¹Ù²Ù¾î º¸¸é (sql.cc ¸¦ ÄÄÆÄÀÏÇÑ´Ù°í °¡Á¤ÇÏÀÚ) $ g++ -c -pipe -Wall -W -O2 -DNO_DEBUG -I/usr/local/include/mysql -o sql.o sql.ccÀÌ µÈ´Ù. 22 ¹øÂ° ÁÙÀÇ °æ¿ì´Â È®ÀåÀÚ°¡ .c ÀÎ ÆÄÀÏ¿¡ ´ëÇÑ ºôµå ±ÔÄ¢Àε¥, À̶§´Â g++ ´ë½Å gcc ¸¦ »ç¿ëÇϵµ·Ï ±ÔÄ¢ÀÌ Á¤ÇØÁ® ÀÖ´Ù.
À§¿¡¼ º¸¸é $@ °¡ »ç¿ëµÇ¾ú´Âµ¥, À̴ ŸÄÏÀÇ ÀüüÀ̸§À» ³ªÅ¸³»´Â »ý·«Çü ¹®ÀÚ´Ù. .cc.o ¿¡¼ Ÿ°ÙÀÇ À̸§Àº ÆÄÀϸí.o ·Î Ç϶ó°í ÁöÁ¤µÇ¾î ÀÖÀ½À¸·Î sql.cc ¿¡ ´ëÇØ¼ $@ ´Â sql.o ·Î ġȯµÈ´Ù. ´«Ä¡ ë°ÚÁö¸¸ "$<" ´Â ¿ø·¡ ÆÄÀÏ ¸íÀ» ³ªÅ¸³½´Ù.
26-29 ´Â build ruleÀÌ Á¤ÀǵǾî ÀÖ´Ù. make ÇÁ·Î±×·¥¿¡ ¾Æ±Ô¸ÕÆ®¸¦ ÁÖ´Â Çü½ÄÀ¸·Î ½ÃÇàµÇ´Âµ¥, ¾Æ·¡¿Í °°Àº ¹æ¹ýÀ¸·Î ½ÇÇàÇÑ´Ù. $ make all $ make clean
make all ¸í·ÉÀ» ½ÇÇàÇϸé g++ ÀÏ ÀÌ¿ëÇØ¼ ½ÇÇàÆÄÀÏÀ» ¸¸µé¾î³»°í, make clean À» ½ÇÇàÇÏ¸é ±×µ¿¾È »ý¼ºµÇ¾ú´ø ¸ðµç ¿ÀºêÁ§Æ® ÆÄÀϰú core ÆÄÀÏÀ» Áö¿ì°Ô µÈ´Ù. ¹°·Ð ÀÌ·¯ÇÑ build ·ê °°Àº°ÍÀº »ç¿ëÀÚ°¡ ÇÊ¿ä·Î ÇÒ°æ¿ì ¾ó¸¶µçÁö »õ·Î¿î ±â´ÉÀ» Ãß°¡½Ãų¼ö ÀÖ´Ù.
Áö±Ý±îÁö make ÀÇ »ç¿ë¹ýÀ» °£´ÜÇÏ°Ô ³ª¸¶ ¾Ë¾Æ º¸¾Ò´Ù. Áö±Ý±îÁöÀÇ ¼³¸íÀº make ÆÄÀÏÀÇ °¡Àå ÀϹÝÀûÀÌ°í °£´ÜÇÑ »ç¿ëÀÇ ¹æ¹ýÀÌ´Ù. ±×·¸´Ù°í ÇÏ´õ¶óµµ À§ÀÇ Á¤µµ¸¸ »ç¿ëÇÒÁÙ ¾Ë¾Æµµ ´ëºÎºÐÀÇ ÇÁ·ÎÁ§Æ® ÇÁ·Î±×·¥À» °ü¸®Çϴµ¥¿¡´Â ¹®Á¦´Â ¾øÀ»°ÍÀÌ´Ù. ÀÌ ¹®¼¿¡¼ Á¦°øÇÏÁö ¾Ê´Â ´õ °í±ÞÀÇ ±â´ÉÀº ½º½º·Î Á¶±Ý¾¿ ¹è¿ö³ª°¡¸é µÉ°ÍÀÌ´Ù.
´ÙÀ½¹ø¿¡´Â Makefile ¸¦ ÀÚµ¿ÀûÀ¸·Î ¸¸µé¾îÁÖ´Â tmake ¶õ µµ±¸¿¡ ´ëÇÑ ¹®¼¸¦ Á¦°øÇϵµ ·Ï ÇϰڴÙ.
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|