HOME   ·Î±×ÀΠ  ȸ¿ø°¡ÀÔ
    
ȸ¿ø°¡ÀÔ
ºñ¹Ð¹øÈ£ ã±â ÀÚµ¿·Î±ä
ÀÌÀü°Ô½ÃÆÇ
   free_board
   °Ç°­°Ô½ÃÆÇ
   ¿À¶óŬDB
   Linux
   HTML/javascript
   Áú¹®°ú ´ä
È£¼­±â
   À̹ÌÁö°Ô½ÃÆÇ  
   °Ç°­°Ô½ÃÆÇ  
   À½¾ÇÀÚ·á  
   ¼ºÁØÀÌ °Ô½ÃÆÇ  
[ÀϹÝ] ÇÁ·Î¾¾ pro*c ÄÄÆÄÀÏ ¹æ¹ý
  È£¼® ´Ô²²¼­ ¾´ ±ÛÀÔ´Ï´Ù - 211.¢½.74.31 ÀÐÀ½:4702  
make ¸¦ ÀÌ¿ëÇÑ ÇÁ·ÎÁ§Æ® °ü¸® (1)
Posted on 2002/1/5
Topic: °³¹ßȯ°æ
article/make_1À§Å° ȨÀ¸·Î
article /make_1
¸¸¾à 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 ½ÃÄѼ­ ÃÖÁ¾ ½ÇÇà ÆÄÀÏÀ» ¸¸µé±â À§Çؼ­, ÇÁ·Î±×·¡¸Ó´Â º¸Åë ¾î¶² source ¸¦ ÇÊ¿ä·Î ÇÏ°í, ¾î¶² Çì´õÆÄÀÏÀÌ ÇÊ¿ä·Î ÇÏ´ÂÁö, ±×¸®°í ¾î¶² ¶óÀ̺귯¸®°¡ ÇÊ¿ä·Î ÇÏ°í ÀÖ´ÂÁö, ÃÖÁ¾ÀûÀ¸·Î ¸¸µé¾îÁú ½ÇÇàÆÄÀÏÀÇ À̸§ÀÌ ¹«¾ùÀÎÁö¸¦ ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ¸¶Âù°¡Áö·Î make ¿ª½Ã "ÄÄÆÄÀÏ ±ÔÄ¢" À» ¾Ë¾Æ¾ß ÇÒÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ·¯ÇÑ ±ÔÄ¢À» Á¤ÇÑ ¼³Á¤ÆÄÀÏÀ» ÂüÁ¶ÇØ¾ß Çϴµ¥ º¸Åë "Makefile" ¶ó´Â À̸§ÀÇ ÆÄÀÏÀ» ÂüÁ¶ÇÑ´Ù. Makefile ¿¡´Â ÇØ´ç ½î¾²¸¦ ÄÄÆÄÀÏ Çϱâ À§Çؼ­, ¾î¶² ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇØ¾ß ÇÏ´ÂÁö, ÄÄÆÄÀÏÈÄ ¾î¶² ½ÇÇàÆÄÀÏ(Target) ¸¦ ¸¸µé¾î¾ß ÇÏ´ÂÁö, °¢ object ÆÄÀÏÀÇ ÀÇÁ¸¼º°ü°è´Â ¾î¶°ÇÑÁö, ÄÄÆÄÀϽà ¾î¶² Çì´õÆÄÀϵð·ºÅ丮¿Í, ¶óÀ̺귯¸®¸¦ ÂüÁ¶ÇÒÁö µî¿¡ ´ëÇÑ ±ÔÄ¢À» ´ã°í ÀÖ´Ù.
´ÙÀ½Àº Makefile ÀÇ °£´ÜÇÑ ÇüÅÂÀÌ´Ù.
1 CC = gcc
2 CXX = g++
3 CFLAGS = -pipe -Wall -W -O2 -DNO_DEBUG
4 CXXFLAGS = -pipe -Wall -W -O2 -DNO_DEBUG
5 INCPATH = -I/usr/local/include/mysql
6 LINK = g++
7 LIBS = -L/usr/local/lib/mysql -lmysqlclient -lcrypt

8 # FILE
9 SOURCES = main.cc 
10         sql.cc

11 OBJECTS = main.o 
12          sql.o

13 TARGET = myprg

14 # Implict rules
15 .SUFFIXES: .cc .c

16 .cc.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
17 .c.o:  $(CC)  -c $(CFLAGS) $(INCPATH) -o $@ $<

18 # build rule

19 all: $(TARGET)
20 $(TARGET): $(OBJECTS)
21         $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)

22 clean:
23     -rm -f $(OBJECTS) $(TARGET)
24     -rm -f core

25 # complie
26 main.o: main.cc
27 sql.o : sql.cc
°¢ÁÙÀÇ ¹øÈ£´Â ¼³¸íÀÇ ÆíÀǸ¦ À§Çؼ­ ºÙÀΰŴÙ.
¾ð¶æ º¸¸é ½©½ºÅ©¸³Æ® ¾ð¾î¿Í ²çÀ¯»çÇÑ ºÐÀ§±â¸¦ dz±èÀ» ¾Ë¼ö ÀÖÀ»°ÍÀÌ´Ù. make ¿¡¼­´Â make ÆÄÀÏÀÇ ³»¿ëÀ» ½±°í °£ÆíÇÏ°Ô ÀÛ¼ºÇϵµ·Ï Çϱâ À§Çؼ­ "¸ÅÅ©·Î" ¸¦ Á¦°øÇÑ´Ù. ¸ÅÅ©·ÎÀÇ »ç¿ëÀº shell ¿¡¼­ÀÇ º¯¼ö»ç¿ë°ú ¸Å¿ì ºñ½ÁÇÏ´Ù.
¸ÅÅ©·Î¸í = ¸ÅÅ©·Î°ª
»ç¿ë¹æ¹ýÀº $(¸ÅÅ©·Î¸í) ½ÄÀ¸·Î ÇÊ¿äÇÒ¶§ ºÒ·¯¾²¸é µÈ´Ù.
1 ¹øÁÙ ºÎÅÍ 13 ¹øÁÙ±îÁö´Â °¢Á¾ ¸ÅÅ©·Î¸¦ ÁöÁ¤ÇßÀ½À» ¾Ë¼ö ÀÖ´Ù.
15 ¹øÁÙÀÇ .SUFFIXES ´Â ÆÄÀÏÀÇ È®ÀåÀÚ¿¡ µû¸¥ ÄÄÆÄÀÏ ±ÔÄ¢À» Á¤ÀÇÇØ ÁÖ±â À§Çؼ­ make ¿¡¼­ ³»ºÎÀûÀ¸·Î Á¦°øÇÏ´Â Å°¿öµå·Î, ÄÄÆÄÀÏ ±ÔÄ¢À» Á¤ÀÇÇÒ ÆÄÀÏÀÇ È®ÀåÀÚ¸¦ Àû¾îÁØ´Ù.
16 - 17 ¹ø° ÁÙÀº .SUFFIXES ¿¡¼­ Á¤ÀÇÇÑ È®ÀåÀÚ¸¦ À§ÇÑ ÄÄÆÄÀÏ ±ÔÄ¢À» Àû¿ëÇÑ °ÍÀÌ´Ù. 16 ¹ø°ÁÙÀº .cc ¿¡ ´ëÇÑ ºôµå±ÔÄ¢Àº ":" ÀÌÇÏÀÇ ±ÔÄ¢¿¡ µû¶ó¼­ ÄÄÆÄÀÏÀ» ÇÏ°í, ÄÄÆÄÀÏÈÄ ¸¸µé¾îÁö´Â object ÆÄÀÏÀº È®ÀåÀÚ ".o"¸¦ ºÙ¿©¶ó´Â ¶æÀÌ´Ù. 16 ¹ø° ÁÙÀ» ¸ÅÅ©·Î ġȯÀ» Çؼ­ ¿ÏÀüÇÑ ¸í·É¾î·Î ¹Ù²Ù¾î º¸¸é (sql.cc ¸¦ ÄÄÆÄÀÏÇÑ´Ù°í °¡Á¤ÇÏÀÚ)
$ g++ -c -pipe -Wall -W -O2 -DNO_DEBUG -I/usr/local/include/mysql -o sql.o sql.cc
ÀÌ µÈ´Ù. 17 ¹ø° ÁÙÀÇ °æ¿ì´Â È®ÀåÀÚ°¡ .c ÀÎ ÆÄÀÏ¿¡ ´ëÇÑ ºôµå ±ÔÄ¢Àε¥, À̶§´Â g++ ´ë½Å gcc ¸¦ »ç¿ëÇϵµ·Ï ±ÔÄ¢ÀÌ Á¤ÇØÁ® ÀÖ´Ù.
À§¿¡¼­ º¸¸é $@ °¡ »ç¿ëµÇ¾ú´Âµ¥, À̴ ŸÄÏÀÇ ÀüüÀ̸§À» ³ªÅ¸³»´Â »ý·«ÇüÀÌ´Ù. .cc.o ¿¡¼­ Ÿ°ÙÀÇ À̸§Àº ÆÄÀϸí.o ·Î Ç϶ó°í ÁöÁ¤µÇ¾î ÀÖÀ½À¸·Î sql.cc ¿¡ ´ëÇؼ­ $@ ´Â sql.o ·Î ġȯµÈ´Ù. ´«Ä¡ ë°ÚÁö¸¸ "$<" ´Â ¿ø·¡ ÆÄÀÏ ¸íÀ» ³ªÅ¸³½´Ù.

19-24 ´Â build ruleÀÌ Á¤ÀǵǾî ÀÖ´Ù.
make ÇÁ·Î±×·¥¿¡ ¾Æ±Ô¸ÕÆ®¸¦ ÁÖ´Â Çü½ÄÀ¸·Î ½ÃÇàµÇ´Âµ¥, ¾Æ·¡¿Í °°Àº ¹æ¹ýÀ¸·Î ½ÇÇàÇÑ´Ù.
$ make all
$ make clean
make all ¸í·ÉÀ» ½ÇÇàÇϸé g++ ÀÏ ÀÌ¿ëÇؼ­ ½ÇÇàÆÄÀÏÀ» ¸¸µé¾î³»°í, make clean À» ½ÇÇàÇÏ¸é ±×µ¿¾È »ý¼ºµÇ¾ú´ø ¸ðµç ¿ÀºêÁ§Æ® ÆÄÀÏ°ú core ÆÄÀÏÀ» Áö¿ì°Ô µÈ´Ù. ¹°·Ð ÀÌ·¯ÇÑ build ·ê °°Àº°ÍÀº »ç¿ëÀÚ°¡ ÇÊ¿ä·Î ÇÒ°æ¿ì ¾ó¸¶µçÁö »õ·Î¿î ±â´ÉÀ» Ãß°¡½Ãų¼ö ÀÖ´Ù.

Áö±Ý±îÁö make ÀÇ »ç¿ë¹ýÀ» °£´ÜÇÏ°Ô ³ª¸¶ ¾Ë¾Æ º¸¾Ò´Ù. Áö±Ý±îÁöÀÇ ¼³¸íÀº make ÆÄÀÏÀÇ °¡Àå ÀϹÝÀûÀÌ°í °£´ÜÇÑ »ç¿ëÀÇ ¹æ¹ýÀÌ´Ù. ±×·¸´Ù°í ÇÏ´õ¶óµµ À§ÀÇ Á¤µµ¸¸ »ç¿ëÇÒÁÙ ¾Ë¾Æµµ ´ëºÎºÐÀÇ ÇÁ·ÎÁ§Æ® ÇÁ·Î±×·¥À» °ü¸®Çϴµ¥¿¡´Â ¹®Á¦´Â ¾øÀ»°ÍÀÌ´Ù. ÀÌ ¹®¼­¿¡¼­ Á¦°øÇÏÁö ¾Ê´Â ´õ °í±ÞÀÇ ±â´ÉÀº ½º½º·Î Á¶±Ý¾¿ ¹è¿ö³ª°¡¸é µÉ°ÍÀÌ´Ù.

´ÙÀ½¹ø¿¡´Â Makefile ¸¦ ÀÚµ¿ÀûÀ¸·Î ¸¸µé¾îÁÖ´Â tmake ¶õ µµ±¸¿¡ ´ëÇÑ ¹®¼­¸¦ Á¦°øÇϵµ ·Ï ÇÏ°Ú´Ù.


¸ñ·Ï

ºÐ·ù ¼±ÅÃ
7 ÀÏ¹Ý    Programmer's Guide to the Pro*C/C++ Precompiler È£¼® 05-08-02 4226
  ÀÏ¹Ý    ÇÁ·Î¾¾ pro*c ÄÄÆÄÀÏ ¹æ¹ý È£¼® 06-02-09 5943
  ÀÏ¹Ý    ÇÁ·Î¾¾ pro*c ÄÄÆÄÀÏ ¹æ¹ý È£¼® 06-02-10 5852
ÀÏ¹Ý    ÇÁ·Î¾¾ pro*c ÄÄÆÄÀÏ ¹æ¹ý È£¼® 06-06-13 4703
6 ÀÏ¹Ý SGA TUNING SCRIPT È£¼® 05-07-22 3427
5 ÀÏ¹Ý ¿ë·®°è»ê Å×À̺í À妽º, µ¥ÀÌºí ±âŸ È£¼® 05-07-06 6052
4 ÀÏ¹Ý ORA-01034: ORA-27101: ¿¡·¯¹ß»ýÀº ÁÖ·Î SID ¹®Á¦ È£¼® 05-07-06 7401
3 ÀÏ¹Ý ¹é¾÷À» À§ÇÑ Ç¥ÁØ ½ºÅ©¸³Æ®ÀÇ ÀÛ¼º È£¼® 05-07-06 3834
2 ÀÏ¹Ý RAISE_APPLICATION_ERROR È£¼® 05-06-20 4693
1 ÀÏ¹Ý TEST (1) È£¼® 05-06-11 3417
  ÀÏ¹Ý    TEST È£¼® 05-06-13 3424
óÀ½ÀÌÀü  11 

 
Copyright © zenos.pe.kr. All rights reserved.