ºìÁªLinuxÃÅ»§
Linux°ïÖú

FreeBSDÖеÄGNU C±àÒëÆ÷£­£­±àÒëÆ÷GCC

·¢²¼Ê±¼ä:2006-08-28 10:13:02À´Ô´:ºìÁª×÷Õß:yinzelei
¡¡¡¡×î»ù±¾µÄ¿ª·¢»·¾³±ØÐë¾ß±¸ CÓïÑÔµÄÖ§³ÖÄÜÁ¦£¬C×÷ΪһÖÖ±àÒëÐ͵ĸ߼¶ÓïÑÔ£¬Õâ¾ÍÊÇ˵ÔËÐÐC³ÌÐò֮ǰҪ½«ÆäÏȱàÒë³É¿ÉÖ´ÐеÄÓÉ»úÆ÷Ö¸Áî¹¹³ÉµÄÖ´ÐгÌÐò£¬Òò´Ë¾ÍÐèҪʹÓÃÒ»¸ö±àÒëÆ÷À´¶ÔCÔ´´úÂë½øÐд¦Àí£¬FreeBSDʹÓõÄÊÇGNUµÄC±àÒëÆ÷¡£GCC×÷Ϊµ±Ç°×îÁ÷Ðеġ¢Ö§³Öƽ̨ÊýÁ¿×î¶àµÄ±àÒëÆ÷£¬ÆäÐÔÄܺÍЧÂÊÒ²·Ç³£Ö®ºÃ¡£
¡¡¡¡°´ÕÕ CÓïÑÔµÄÏ°¹ß£¬µÚÒ»¸ö³ÌÐòͨ³£Îªhello.c£º[code]$ cat hello.c
main()
{
printf( ¡° Hello, world!n ¡± );
}[/code]¼òµ¥µÄ±àÒë¹ý³ÌÈçÏ£º[code]$ cc hello.c
$ ./a.out
Hello, world![/code]UNIXÏÂȱʡʹÓÃa.out×÷ΪÉú³ÉµÄÎļþÃû£¬¿ÉÒÔʹÓÃ-o²ÎÊýÖ¸³öÉú³ÉµÄÖ´ÐÐÎļþÃû¡£
¡¡¡¡ÊÂʵÉÏÇ°ÃæµÄ±àÒëÉú³ÉÖ´ÐÐÎļþµÄ¹ý³ÌÓÉÁ½²½×é³É£¬Ò»ÊÇÉú³ÉÄ¿±êÎļþ£¬Í¨³£Ê¹Óà .oΪºó׺£¬È»ºó½øÐÐÁ¬½ÓÉú³ÉÖ´ÐÐÎļþ¡£
¡¡¡¡Òò´Ë£¬¿ÉÒÔʹÓà ar½«¶à¸öÄ¿±êÎļþ×éºÏ³ÉÒ»¸öº¯Êý¿âÎļþ£¬¶ø¿ÉÒÔʹÓÃnmÀ´²é¿´¿âÎļþµÄÄÚÈÝ¡£[code]$ cc -c f1.c
$ cc -c f2.c
$ ar c mlib.a f1.o f2.o
$ nm mlib.a[/code]FreeBSDʹÓõÄCÓïÑÔ±àÒëÆ÷gccÊÇÒ»Öַdz£Á÷Ðеģ¬¶àƽ̨¡¢¸ßЧÂʵÄCÓïÑÔ±àÒëÆ÷£¬ËüÌṩÁ˶àÖÖÑ¡ÏîÓÃÓÚÉú³ÉÓ¦ÓÃÈí¼þ¡£ÒÔÏÂΪ³£ÓõÄһЩѡÏ[code]-L
¶¨ÒåÁ¬½Ó¿âÎļþµÄĿ¼
-I
¶¨Òå CÔ´ÂëµÄÍ·ÎļþµÄĿ¼
-o
ºóÃæ¸úµÄ²ÎÊýΪҪÉú³ÉµÄÖ´ÐÐÎļþµÄÃû
-O
½øÐбàÒëÓÅ»¯£¬¿ÉÒÔÖ¸¶¨Ê¹Óò»Í¬µÄÓÅ»¯¼¶±ð£¬´Ó O2µ½O6£¬Ã¿¸ö²»Í¬µÄ¼¶±ðʹÓõÄÓÅ»¯ÉèÖò»Í¬¡£
Ïà¹ØµÄÑ¡ÏÓж¨ÒåÉú³ÉµÄÖ¸ÁîÂëÀàÐ͵IJÎÊý£¬Èç -m486Éú³É486Ö¸ÁȱʡµÄgcc°æ±¾£¨2.7.2£©²»Ö§³ÖPentium´úÂë¡£
-g
¼ÓÈëµ÷ÊÔ´úÂ룬¿ÉÒÔÔÚÍê³ÉºóʹÓà stripÃüÁîɾ³ýÓÃÓÚµ÷ÊÔµÄÐÅÏ¢
-c
½ö½ö½øÐбàÒë¶ø²»½øÐÐÁ¬½Ó£¬Éú³ÉÄ¿±êÎļþ
-fPic
Éú³ÉÏà¶ÔµØÖ·µÄ´úÂ룬¿ÉÓÃÓÚ×îºóÉú³É¶¯Ì¬Á¬½Ó¿â
-static
Ç¿ÖÆÉú³É¾²Ì¬Á¬½ÓµÄ³ÌÐò
-aout
Éú³É a.out¸ñʽµÄÖ´ÐÐÎļþ¡¢Ä¿±ê´úÂëµÈ£¬È±Ê¡Ê¹ÓÃELF¸ñʽ
-elf
3.0Ö®ºóΪȱʡÉèÖã¬Éú³ÉELF¸ñʽµÄÄ¿±êºÍÖ´ÐдúÂë[/code]¿ÉÒÔͨ¹ýÃüÁîÐвÎÊý²é¿´µ±Ç°Ê¹ÓÃµÄ GNU C±àÒëÆ÷µÄ°æ±¾£º[code]$ cc -version
Gcc version 2.7.2.1[/code]FreeBSDµ±Ç°Ê¹ÓÃGNUµÄC±àÒëÆ÷ÓÐʱºò²»ÊÇgcc±àÒëÆ÷µÄ×îа汾£¬ÒòΪÓÐʱºò×îа汾µÄÈí¼þ²»¿É±ÜÃâµÄÓÐЩСÎÊÌâ¡£µ±È»£¬Ê¹ÓÃÕßÍêÈ«¿ÉÒÔ×Ô¼ºÊÖ¹¤Éý¼¶µ½×îа汾µÄgcc£¬Õâ¿ÉÊÇÒ»¸öÓÐȤµÄÁªÏµ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. oddvar ÓÚ 2006-10-13 16:56:08·¢±í:

    Äܲ»ÄܸüÏêϸµã°¡,¶àлÁË