GNU Compiler Collection 4Æí
¤· Á¦ÀÛ : ¸®´ª½ºÆ÷ÅÐ(www.superuser.co.kr) ¼öÆÛÀ¯ÀúÄÚ¸®¾Æ °³¹ßÆÀ
¤· SULINUX ȨÆäÀÌÁö : www.sulinux.net
¤· ¸®´ª½ºÆ÷ÅРȨÆäÀÌÁö : www.superuser.co.kr
1. Àü󸮱â Á¶Àý
GCC¿¡¼ ¸í·ÉÇà ¿É¼ÇÀ» ÀÌ¿ëÇÏ¿© Àü󸮱â Á¶Àý
- -E ¿É¼ÇÀ» ÀÌ¿ëÇÏ¿© Àüó¸® °úÁ¤ÀÌ ³¡³ª¸é ÄÄÆÄÀÏÀ» ¸ØÃâ ¼ö ÀÖÀ½
- Àü󸮱⠿ɼÇ
o -Dname : Àü󸮱⠸ÅÅ©·Î nameÀÇ °ªÀ» 1·Î Á¤ÀÇ
o -Dname=def : Àü󸮱⠸ÅÅ©·Î nameÀÇ °ªÀ» ÁÖ¾îÁø defÀ¸·Î Á¤ÀÇ
o -Uname : Àü󸮱⠸ÅÅ©·Î nameÀÇ Á¤ÀǸ¦ »èÁ¦
o -undef : °ø¿ë,Ç¥ÁØ ¸ÅÅ©·Î¸¦ Á¦¿ÜÇÏ°í ´Ù¸¥ ¸ðµç ½Ã½ºÅÛ°ú
°ü·ÃµÈ ¸ÅÅ©·ÎÁ¤ÀÇ»èÁ¦
¿¹ Á¦
2. µð·ºÅ丮 °Ë»ö °æ·Î ¼öÁ¤
µð·ºÅ丮 °Ë»ö °æ·Î Á¶ÀÛ ¿É¼Ç
¿¹Á¦
$ gcc –I /usr/local/libxml12 -I- -I /usr/local/include/netdev fibonacci.c
#include “libxml12/xmlpos.h¡±
#include <netdev/devname.h>
#include <libxml12/xmlpos.h>
#include <netdev/devname.h>
¡Ø - I ¿É¼ÇÀÇ ±âº»µ¿ÀÛ : ÇØ´ç °æ·ÎÀÇ ½Ã½ºÅÛ Çì´õ¿Í »ç¿ëÇì´õ¸¦ ¸ðµÎ ãÀ½
-I- ¾ÕÀÇ –I¿É¼Ç :ÇØ´ç °æ·ÎÀÇ »ç¿ëÇì´õ¸¸ ¸ðµÎ ãÀ½
-I- µÚÀÇ –I¿É¼Ç : ÇØ´ç °æ·ÎÀÇ ½Ã½ºÅÛ Çì´õ¿Í »ç¿ëÇì´õ¸¦ ¸ðµÎ ãÀ½
3. ¸µÄ¿ Á¶ÀÛ
¸µÄ¿ Á¶ÀÛ ¿É¼Ç
¿¹ Á¦
- ¿ÀºêÁ§Æ® ÄÚµå·Î ÄÄÆÄÀÏ
$ gcc -c calc_fib.c
$ gcc -c fibonacci.c
- ¿ÀºêÁ§Æ® ÆÄÀÏÀ» ÃÖÁ¾ ¹ÙÀ̳ʸ® ÆÄÀÏ·Î ¸µÅ©
$ gcc fibonacci.o calc_fib.o - fibonacci
- ¹ÙÀÌ·¯´Ï ÆÄÀÏ»èÁ¦
$ rm fibonacci
- ¿ÀºêÁ§Æ® ÆÄÀÏ·Î ¾ÆÄ«ÀÌºê ÆÄÀÏ »ý¼º
$ ar rcs libcalc_fib.a calc_fib.o
- ¿ÀºêÁ§Æ® ÆÄÀϰú ¾ÆÄ«ÀÌºê ÆÄÀÏ ¸µÅ©
$ gcc fibonacci.o -o fibonacci -L . -Icalc_fib
4. ¾î¼Àºí·¯ ¿É¼Ç Àü´Þ ¿É¼Ç
GCC¿¡¼´Â ¹«½ÃµÇ°í ¾î¼Àºí·¯¿¡°Ô Á÷Á¢¿É¼ÇÀü´Þ °¡´É
- Wa,opt : ¿©·¯ °³°¡ opt¿É¼ÇÀ» ½°Ç¥·Î ±¸ºÐÇØ¼ ÁöÁ¤
5. error ¸Þ½ÃÁö on/off
°æ°í´Â ÀáÀçÀûÀÎ ¿¡·¯°¡ µÉ ¼ö ÀÖ´Ù.
- GCC°¡ Ãâ·ÂÇÏ´Â °æ°íÀÇ °³¼ö¿Í Á¾·ù¸¦ Á¶ÀýÇÏ´Â ¿É¼Ç
- ¾ð¾îÀÇ ±â´É¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ¾ð¾î¿¡ °ü·ÃµÈ ¿É¼±
ÀÚÁÖ »ç¿ëµÇ´Â ¿É¼Ç ¼³¸í
- -pedantic : ISO Ç¥ÁØ¿¡ ¿ä±¸µÇ´Â ¸ðµç °æ°í¸¦ Ãâ·Â
ISO CÇÁ·Î±×·¥À» ¾ö°ÝÇÏ°Ô ¸¸Á·ÇÏ´ÂÁö È®ÀÎÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î
»ç¿ë ±Ý¹°
ºÒÇÊ¿äÇÑ Äڵ带 ã±â, GNU È®Àå±â´É off, traditional C Á¦°Å
ÇϱâÀ§ÇØ »ç¿ë
- -Wformat : printf() ÇÔ¼ö °è¿¿¡ ÀÔ·ÂµÈ ÀÎÀÚ¿¡ ´ëÇØ ÁÖ¾îÁø Çü½Ä°ú
¸ÂÁö ¾ÊÀ» ¶§ °æ°í
- -Wformat : printf() ÇÔ¼ö °è¿¿¡ ÀÔ·ÂµÈ ÀÎÀÚ¿¡ ´ëÇØ ÀáÀçÀûÀÎ º¸¾È ¹®Á¦ °æ°í
- -Werror : °æ°í ¸¦ ¿À·ù·Î ¹Ù²Ù¾î ÄÄÆÄÀÏÀ» ÁߴܽÃÅ´
- -Wunsed : Wunsed ·ùÀÇ ¿É¼ÇÀ» ¸ðµÎ ÄÔ
-Wunsed-function : ¼±¾ðÀº µÇ¾úÁö¸¸ Á¤ÀǵÇÁö ¾ÊÀº ÇÔ¼ö¿¡ ´ëÇØ °æ°í
-Wunsed-label : ¼±¾ðÀº µÇ¾úÁö¸¸ »ç¿ëµÇÁö ¾ÊÀº ·¹ÀÌºí¿¡ ´ëÇØ °æ°í
-Wunsed-parameter : ¼±¾ðÀº µÇ¾úÁö¸¸ »ç¿ëµÇÁö ¾ÊÀº ÇÔ¼ö ¸Å°³º¯¼ö¿¡
´ëÇØ °æ°í
-Wunsed-value : »ç¿ëµÇÁö ¾ÊÀº °è»ê °á°ú¿¡ ´ëÇØ °æ°í Ãâ·Â
-Wunsed-variable : ¼±¾ðµÇ¾úÁö¸¸ »ç¿ëµÇÁö ¾ÊÀº º¯¼ö¿¡ ´ëÇØ °æ°í
4. µð¹ö±ë Á¤º¸ Ãß°¡
GCC´Â »ç¿ëÀÚÀÇ µð¹ö±ëÀ» µ½±âÀ§ÇÑ ¿©·¯°¡Áö ¿É¼ÇÀ» Á¦°ø
-g, -ggdb : µð¹ö±ë Á¤º¸¸¦ ½ÇÇà ÆÄÀÏ¿¡ Æ÷ÇÔ ½ÃÅ´
-a, -ax : ÇÁ·ÎÆÄÀϸµ Á¤º¸¸¦ Ç¥½Ã (GCC 3.x ¹öÀü À̻󿡼´Â »èÁ¦)
Äڵ带 ÇÁ·ÎÆÄÀϸµ Çϰųª ÄÄÆÄÀÏ·¯ ÀÚü¸¦ µð¹ö±ëÇÒ ¶§ À¯¿ëÇÑ ¿É¼Ç
-fprofile-arce : ÇÁ·Î±×·¥ÀÌ ½ÇÇàÇÏ´Â µ¿¾È ¾î¶² ½ÇÇà°æ·Î°¡ ¾ó¸¶³ª ÀÚÁÖ
ºÒ¸®´ÂÁö ±â·ÏÇÑ ´ýÇÁÆÄÀÏÀ» ±â·ÏÇÏ´Â ÇÁ·Î±×·¥ »ðÀÔ.
¼Ò½ºÆÄÀÏ À̸§¿¡ .du¸¦ Ãß°¡ÇÑ ÆÄÀÏÀÌ »ý¼º
-ftest-coverage : Ä¿¹ö¸®Áö Å×½ºÆ®ÇÁ·Î±×·¥ÀÎ gcov¿¡¼ »ç¿ëÇÏ´Â µ¥ÀÌÅ͸¦»ý¼º
-p : prof¿¡¼ »ç¿ëÇÏ´Â ÇÁ·ÎÆÎ¸®¸µ Á¤º¸¸¦ ´ýÇÁÇÏ´Â Ãß°¡ÀûÀÎ ÄÚµå »ý¼º
-pg : gprof ¿¡¼ »ç¿ëÇÏ´Â ÇÁ·ÎÆÎ¸®¸µ Á¤º¸¸¦ ´ýÇÁÇÏ´Â Ãß°¡ÀûÀÎ ÄÚµå »ý¼º