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

LinuxÖÐGCCµÄÓ¦ÓýéÉÜ

·¢²¼Ê±¼ä:2007-03-03 00:20:57À´Ô´:ºìÁª×÷Õß:System
¡¡¡¡ÔÚΪLinux¿ª·¢Ó¦ÓóÌÐòʱ£¬¾ø´ó¶àÊýÇé¿öÏÂʹÓõͼÊÇCÓïÑÔ£¬Òò´Ë¼¸ºõÿһλLinux ³ÌÐòÔ±ÃæÁÙµÄÊ×ÒªÎÊÌâ¶¼ÊÇÈçºÎÁé»îÔËÓÃC±àÒëÆ÷¡£Ä¿Ç°Linux ÏÂ×î³£ÓõÄCÓïÑÔ±àÒëÆ÷ÊÇGCC£¨GNU Compiler Collection£©£¬ËüÊÇGNUÏîÄ¿ÖзûºÏANSI C±ê×¼µÄ±àÒëϵͳ£¬Äܹ»±àÒëÓÃC¡¢C++ºÍObject CµÈÓïÑÔ±àдµÄ³ÌÐò¡£GCC²»½ö¹¦Äܷdz£Ç¿´ó£¬½á¹¹Ò²Òì³£Áé»î¡£×îÖµµÃ³ÆµÀµÄÒ»µã¾ÍÊÇËü¿ÉÒÔͨ¹ý²»Í¬µÄǰ¶ËÄ£¿éÀ´Ö§³Ö¸÷ÖÖÓïÑÔ£¬ÈçJava¡¢ Fortran¡¢Pascal¡¢Modula-3ºÍAdaµÈ¡£

¡¡¡¡¿ª·Å¡¢×ÔÓɺÍÁé»îÊÇLinuxµÄ÷ÈÁ¦ËùÔÚ£¬¶øÕâÒ»µãÔÚGCCÉϵÄÌåÏÖ¾ÍÊdzÌÐòԱͨ¹ýËüÄܹ»¸üºÃµØ¿ØÖÆÕû¸ö±àÒë¹ý³Ì¡£ÔÚʹÓÃGCC±àÒë³ÌÐòʱ£¬±àÒë¹ý³Ì¿ÉÒÔ±»Ï¸·ÖΪËĸö½×¶Î£º

¡¡¡¡Ô¤´¦Àí£¨Pre-Processing£©

¡¡¡¡±àÒ루Compiling£©

¡¡¡¡»ã±à£¨Assembling£©

¡¡¡¡Á´½Ó£¨Linking£©

¡¡¡¡Linux³ÌÐòÔ±¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒªÈà GCCÔÚ±àÒëµÄÈκν׶νáÊø£¬ÒÔ±ã¼ì²é»òʹÓñàÒëÆ÷Ôڸý׶εÄÊä³öÐÅÏ¢£¬»òÕß¶Ô×îºóÉú³ÉµÄ¶þ½øÖÆÎļþ½øÐпØÖÆ£¬ÒÔ±ãͨ¹ý¼ÓÈ벻ͬÊýÁ¿ºÍÖÖÀàµÄµ÷ÊÔ´úÂëÀ´Îª ½ñºóµÄµ÷ÊÔ×öºÃ×¼±¸¡£ºÍÆäËü³£ÓõıàÒëÆ÷Ò»Ñù£¬GCCÒ²ÌṩÁËÁé»î¶øÇ¿´óµÄ´úÂëÓÅ»¯¹¦ÄÜ£¬ÀûÓÃËü¿ÉÒÔÉú³ÉÖ´ÐÐЧÂʸü¸ßµÄ´úÂë¡£

¡¡¡¡GCCÌṩÁË30¶àÌõ¾¯¸æÐÅÏ¢ºÍÈý¸ö¾¯¸æ¼¶±ð£¬Ê¹ÓÃËüÃÇÓÐÖúÓÚÔöÇ¿³ÌÐòµÄÎȶ¨ÐԺͿÉÒÆÖ²ÐÔ¡£´ËÍ⣬GCC»¹¶Ô±ê×¼µÄCºÍC++ÓïÑÔ½øÐÐÁË´óÁ¿µÄÀ©Õ¹£¬Ìá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ£¬ÓÐÖúÓÚ±àÒëÆ÷½øÐдúÂëÓÅ»¯£¬Äܹ»¼õÇá±à³ÌµÄ¹¤×÷Á¿¡£

¡¡¡¡GCCÆð²½

¡¡¡¡ÔÚѧϰʹÓÃGCC֮ǰ£¬ÏÂÃæµÄÕâ¸öÀý×ÓÄܹ»°ïÖúÓû§Ñ¸ËÙÀí½âGCCµÄ¹¤×÷Ô­Àí£¬²¢½«ÆäÁ¢¼´ÔËÓõ½Êµ¼ÊµÄÏîÄ¿¿ª·¢ÖÐÈ¥¡£Ê×ÏÈÓÃÊìϤµÄ±à¼­Æ÷ÊäÈëÇåµ¥1ËùʾµÄ´úÂ룺

¡¡¡¡Çåµ¥1£ºhello.c

¡¡¡¡#include int main(void){printf ("Hello world, Linux programming!\\n");return 0;}

¡¡¡¡È»ºóÖ´ÐÐÏÂÃæµÄÃüÁî±àÒëºÍÔËÐÐÕâ¶Î³ÌÐò£º

¡¡¡¡# gcc hello.c -o hello
¡¡¡¡# ./helloHello world, Linux programming!

¡¡¡¡´Ó³ÌÐòÔ±µÄ½Ç¶È¿´£¬Ö»Ðè¼òµ¥µØÖ´ÐÐÒ»ÌõGCCÃüÁî¾Í¿ÉÒÔÁË£¬µ«´Ó±àÒëÆ÷µÄ½Ç¶ÈÀ´¿´£¬È´ÐèÒªÍê ³ÉһϵÁзdz£·±ÔӵŤ×÷¡£Ê×ÏÈ£¬GCCÐèÒªµ÷ÓÃÔ¤´¦Àí³ÌÐò cpp£¬ÓÉËü¸ºÔðÕ¹¿ªÔÚÔ´ÎļþÖж¨ÒåµÄºê£¬²¢ÏòÆäÖвåÈë¡°#include¡±Óï¾äËù°üº¬µÄÄÚÈÝ£»½Ó×Å£¬GCC»áµ÷ÓÃcclºÍas½«´¦ÀíºóµÄÔ´´úÂë±àÒë³ÉÄ¿ ±ê´úÂ룻×îºó£¬GCC»áµ÷ÓÃÁ´½Ó³ÌÐòld£¬°ÑÉú³ÉµÄÄ¿±ê´úÂëÁ´½Ó³ÉÒ»¸ö¿ÉÖ´ÐгÌÐò¡£

¡¡¡¡ÎªÁ˸üºÃµØÀí½âGCCµÄ¹¤×÷¹ý³Ì£¬¿ÉÒÔ°ÑÉÏÊö±àÒë¹ý³Ì·Ö³É¼¸¸ö²½Öèµ¥¶À½øÐУ¬²¢¹Û²ìÿ²½µÄÔËÐнá¹û¡£µÚÒ»²½ÊǽøÐÐÔ¤±àÒ룬ʹÓÃ-E²ÎÊý¿ÉÒÔÈÃGCCÔÚÔ¤´¦Àí½áÊøºóÍ£Ö¹±àÒë¹ý³Ì£º

¡¡¡¡# gcc -E hello.c -o hello.i

¡¡¡¡´ËʱÈô²é¿´hello.cppÎļþÖеÄÄÚÈÝ£¬»á·¢ÏÖstdio.hµÄÄÚÈÝȷʵ¶¼²åµ½ÎļþÀïÈ¥ÁË£¬¶øÆäËüÓ¦µ±±»Ô¤´¦ÀíµÄºê¶¨ÒåÒ²¶¼×öÁËÏàÓ¦µÄ´¦Àí¡£ÏÂÒ»²½Êǽ«hello.i±àÒëΪĿ±ê´úÂ룬Õâ¿ÉÒÔͨ¹ýʹÓÃ-c²ÎÊýÀ´Íê³É£º

¡¡¡¡# gcc -c hello.i -o hello.o

¡¡¡¡GCCĬÈϽ«.iÎļþ¿´³ÉÊÇÔ¤´¦ÀíºóµÄCÓïÑÔÔ´´úÂ룬Òò´ËÉÏÊöÃüÁ×Ô¶¯Ìø¹ýÔ¤´¦Àí²½Öè¶ø¿ªÊ¼Ö´ÐбàÒë¹ý³Ì£¬Ò²¿ÉÒÔʹÓÃ-x²ÎÊýÈÃGCC´ÓÖ¸¶¨µÄ²½Ö迪ʼ±àÒë¡£×îºóÒ»²½Êǽ«Éú³ÉµÄÄ¿±êÎļþÁ´½Ó³É¿ÉÖ´ÐÐÎļþ£º

¡¡¡¡# gcc hello.o -o hello

¡¡¡¡ÔÚ²ÉÓÃÄ£¿é»¯µÄÉè¼ÆË¼Ïë½øÐÐÈí¼þ¿ª·¢Ê±£¬Í¨³£Õû¸ö³ÌÐòÊÇÓɶà¸öÔ´Îļþ×é³ÉµÄ£¬ÏàÓ¦µØÒ²¾ÍÐÎ³É Á˶à¸ö±àÒëµ¥Ôª£¬Ê¹ÓÃGCCÄܹ»ºÜºÃµØ¹ÜÀíÕâЩ±àÒëµ¥Ôª¡£¼ÙÉèÓÐÒ»¸öÓÉfoo1.cºÍfoo2.cÁ½¸öÔ´Îļþ×é³ÉµÄ³ÌÐò£¬ÎªÁ˶ÔËüÃǽøÐбàÒ룬²¢×îÖÕÉú³É ¿ÉÖ´ÐгÌÐòfoo£¬¿ÉÒÔʹÓÃÏÂÃæÕâÌõÃüÁ

¡¡¡¡# gcc foo1.c foo2.c -o foo

¡¡¡¡Èç¹ûͬʱ´¦ÀíµÄÎļþ²»Ö¹Ò»¸ö£¬GCCÈÔÈ»»á°´ÕÕÔ¤´¦Àí¡¢±àÒëºÍÁ´½ÓµÄ¹ý³ÌÒÀ´Î½øÐС£Èç¹ûÉÆðÀ´£¬ÉÏÃæÕâÌõÃüÁî´óÖÂÏ൱ÓÚÒÀ´ÎÖ´ÐÐÈçÏÂÈýÌõÃüÁ

¡¡¡¡# gcc -c foo1.c -o foo1.o
¡¡¡¡# gcc -c foo2.c -o foo2.o
¡¡¡¡# gcc foo1.o foo2.o -o foo

¡¡¡¡ÔÚ±àÒëÒ»¸ö°üº¬Ðí¶àÔ´ÎļþµÄ¹¤³Ìʱ£¬ÈôÖ»ÓÃÒ»ÌõGCCÃüÁîÀ´Íê³É±àÒëÊǷdz£ÀË·Ñʱ¼äµÄ¡£¼ÙÉè ÏîÄ¿ÖÐÓÐ100¸öÔ´ÎļþÐèÒª±àÒ룬²¢ÇÒÿ¸öÔ´ÎļþÖж¼°üº¬ 10000ÐдúÂ룬Èç¹ûÏñÉÏÃæÄÇÑù½öÓÃÒ»ÌõGCCÃüÁîÀ´Íê³É±àÒ빤×÷£¬ÄÇôGCCÐèÒª½«Ã¿¸öÔ´Îļþ¶¼ÖØÐ±àÒëÒ»±é£¬È»ºóÔÙÈ«²¿Á¬½ÓÆðÀ´¡£ºÜÏÔÈ»£¬ÕâÑùÀË·Ñ µÄʱ¼äÏ൱¶à£¬ÓÈÆäÊǵ±Óû§Ö»ÊÇÐÞ¸ÄÁËÆäÖÐijһ¸öÎļþµÄʱºò£¬ÍêȫûÓбØÒª½«Ã¿¸öÎļþ¶¼ÖØÐ±àÒëÒ»±é£¬ÒòΪºÜ¶àÒѾ­Éú³ÉµÄÄ¿±êÎļþÊDz»»á¸Ä±äµÄ¡£Òª½â¾öÕâ ¸öÎÊÌ⣬¹Ø¼üÊÇÒªÁé»îÔËÓÃGCC£¬Í¬Ê±»¹Òª½èÖúÏñMakeÕâÑùµÄ¹¤¾ß¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. System ÓÚ 2007-03-03 00:22:57·¢±í:

    ¡¡¡¡¾¯¸æÌáʾ¹¦ÄÜ

    ¡¡¡¡GCC°üº¬ÍêÕûµÄ³ö´í¼ì²éºÍ¾¯¸æÌáʾ¹¦ÄÜ£¬ËüÃÇ¿ÉÒÔ°ïÖúLinux³ÌÐòԱд³ö¸ü¼ÓרҵºÍÓÅÃÀµÄ´úÂë¡£ÏÈÀ´¶Á¶ÁÇåµ¥2ËùʾµÄ³ÌÐò£¬Õâ¶Î´úÂëдµÃºÜÔã¸â£¬×Ðϸ¼ì²éһϲ»ÄÑÌô³öºÜ¶à벡£º

    ¡¡¡¡mainº¯ÊýµÄ·µ»ØÖµ±»ÉùÃ÷Ϊvoid£¬µ«Êµ¼ÊÉÏÓ¦¸ÃÊÇint£»

    ¡¡¡¡Ê¹ÓÃÁËGNUÓï·¨À©Õ¹£¬¼´Ê¹ÓÃlong longÀ´ÉùÃ÷64λÕûÊý£¬²»·ûºÏANSI/ISO CÓïÑÔ±ê×¼£»

    ¡¡¡¡mainº¯ÊýÔÚÖÕֹǰûÓе÷ÓÃreturnÓï¾ä¡£

    ¡¡¡¡Çåµ¥2£ºillcode.c

    ¡¡¡¡#include void main(void){long long int var = 1;printf("It is not standard C code!\\n");}

    ¡¡¡¡ÏÂÃæÀ´¿´¿´GCCÊÇÈçºÎ°ïÖú³ÌÐòÔ±À´·¢ÏÖÕâЩ´íÎóµÄ¡£µ±GCCÔÚ±àÒë²»·ûºÏANSI/ISO CÓïÑÔ±ê×¼µÄÔ´´úÂëʱ£¬Èç¹û¼ÓÉÏÁË-pedanticÑ¡ÏÄÇôʹÓÃÁËÀ©Õ¹Óï·¨µÄµØ·½½«²úÉúÏàÓ¦µÄ¾¯¸æÐÅÏ¢£º

    ¡¡¡¡# gcc -pedantic illcode.c -o illcode
    ¡¡¡¡illcode.c: In function `main':
    ¡¡¡¡illcode.c:9: ISO C89 does not support `long long'
    ¡¡¡¡illcode.c:8: return type of `main' is not `int'

    ¡¡¡¡ÐèҪעÒâµÄÊÇ£¬-pedantic±àÒëÑ¡Ïî²¢²»Äܱ£Ö¤±»±àÒë³ÌÐòÓëANSI/ISO C±ê×¼µÄÍêÈ«¼æÈÝ£¬Ëü½ö½öÖ»ÄÜÓÃÀ´°ïÖúLinux³ÌÐòÔ±ÀëÕâ¸öÄ¿±êÔ½À´Ô½½ü¡£»òÕß»»¾ä»°Ëµ£¬-pedanticÑ¡ÏîÄܹ»°ïÖú³ÌÐòÔ±·¢ÏÖһЩ²»·ûºÏ ANSI/ISO C±ê×¼µÄ´úÂ룬µ«²»ÊÇÈ«²¿£¬ÊÂʵÉÏÖ»ÓÐANSI/ISO CÓïÑÔ±ê×¼ÖÐÒªÇó½øÐбàÒëÆ÷Õï¶ÏµÄÄÇЩÇé¿ö£¬²ÅÓпÉÄܱ»GCC·¢ÏÖ²¢Ìá³ö¾¯¸æ¡£

    ¡¡¡¡³ýÁË-pedanticÖ®Í⣬GCC»¹ÓÐһЩÆäËü±àÒëÑ¡ÏîÒ²Äܹ»²úÉúÓÐÓõľ¯¸æÐÅÏ¢¡£ÕâЩѡÏî´ó¶àÒÔ-W¿ªÍ·£¬ÆäÖÐ×îÓмÛÖµµÄµ±Êý-WallÁË£¬Ê¹ÓÃËüÄܹ»Ê¹GCC²úÉú¾¡¿ÉÄܶàµÄ¾¯¸æÐÅÏ¢£º

    ¡¡¡¡# gcc -Wall illcode.c -o
    ¡¡¡¡illcodeillcode.c:8: warning: return type of `main' is not `int'
    ¡¡¡¡illcode.c: In function `main':
    ¡¡¡¡illcode.c:9: warning: unused variable `var'

    ¡¡¡¡GCC¸ø³öµÄ¾¯¸æÐÅÏ¢ËäÈ»´ÓÑϸñÒâÒåÉÏ˵²»ÄÜËã×÷ÊÇ´íÎ󣬵«È´ºÜ¿ÉÄܳÉΪ´íÎóµÄÆÜÉíÖ®Ëù¡£Ò»¸öÓÅÐãµÄLinux³ÌÐòÔ±Ó¦¸Ã¾¡Á¿±ÜÃâ²úÉú¾¯¸æÐÅÏ¢£¬Ê¹×Ô¼ºµÄ´úÂëʼÖÕ±£³Ö¼ò½à¡¢ÓÅÃÀºÍ½¡×³µÄÌØÐÔ¡£

    ¡¡¡¡ÔÚ´¦Àí¾¯¸æ·½Ã棬ÁíÒ»¸ö³£ÓõıàÒëÑ¡ÏîÊÇ-Werror£¬ËüÒªÇóGCC½«ËùÓеľ¯¸æ µ±³É´íÎó½øÐд¦Àí£¬ÕâÔÚʹÓÃ×Ô¶¯±àÒ빤¾ß£¨ÈçMakeµÈ£©Ê±·Ç³£ÓÐÓá£Èç¹û±àÒëʱ´øÉÏ-WerrorÑ¡ÏÄÇôGCC»áÔÚËùÓвúÉú¾¯¸æµÄµØ·½Í£Ö¹±àÒ룬ÆÈ ʹ³ÌÐòÔ±¶Ô×Ô¼ºµÄ´úÂë½øÐÐÐ޸ġ£Ö»Óе±ÏàÓ¦µÄ¾¯¸æÐÅÏ¢Ïû³ýʱ£¬²Å¿ÉÄܽ«±àÒë¹ý³Ì¼ÌÐø³¯Ç°Íƽø¡£Ö´ÐÐÇé¿öÈçÏ£º

    ¡¡¡¡# gcc -Wall -Werror
    ¡¡¡¡illcode.c -o
    ¡¡¡¡illcodecc1: warnings being treated as errors
    ¡¡¡¡illcode.c:8: warning: return type of `main' is not `int'
    ¡¡¡¡illcode.c: In function `main':
    ¡¡¡¡illcode.c:9: warning: unused variable `var'

    ¡¡¡¡¶ÔLinux³ÌÐòÔ±À´½²£¬GCC¸ø³öµÄ¾¯¸æÐÅÏ¢ÊǺÜÓмÛÖµµÄ£¬ËüÃDz»½ö¿ÉÒÔ°ïÖú³ÌÐòԱд³ö¸ü¼Ó½¡×³µÄ³ÌÐò£¬¶øÇÒ»¹ÊǸú×ٺ͵÷ÊÔ³ÌÐòµÄÓÐÁ¦¹¤¾ß¡£½¨ÒéÔÚÓÃGCC±àÒëÔ´´úÂëʱʼÖÕ´øÉÏ-WallÑ¡Ï²¢°ÑËüÖð½¥ÅàÑø³ÉΪһÖÖϰ¹ß£¬Õâ¶ÔÕÒ³ö³£¼ûµÄÒþʽ±à³Ì´íÎóºÜÓаïÖú¡£

    ¡¡¡¡¿âÒÀÀµ

    ¡¡¡¡ÔÚLinux Ï¿ª·¢Èí¼þʱ£¬ÍêÈ«²»Ê¹ÓõÚÈý·½º¯Êý¿âµÄÇé¿öÊDZȽÏÉÙ¼ûµÄ£¬Í¨³£À´½²¶¼ÐèÒª½èÖúÒ»¸ö»ò¶à¸öº¯Êý¿âµÄÖ§³Ö²ÅÄܹ»Íê³ÉÏàÓ¦µÄ¹¦ÄÜ¡£´Ó³ÌÐòÔ±µÄ½Ç¶È¿´£¬º¯Êý¿âʵ ¼ÊÉϾÍÊÇһЩͷÎļþ£¨.h£©ºÍ¿âÎļþ£¨.so»òÕß.a£©µÄ¼¯ºÏ¡£ËäÈ»LinuxϵĴó¶àÊýº¯Êý¶¼Ä¬ÈϽ«Í·Îļþ·Åµ½/usr/include/Ŀ¼Ï£¬¶ø¿â ÎļþÔò·Åµ½/usr/lib/Ŀ¼Ï£¬µ«²¢²»ÊÇËùÓеÄÇé¿ö¶¼ÊÇÕâÑù¡£ÕýÒòÈç´Ë£¬GCCÔÚ±àÒëʱ±ØÐëÓÐ×Ô¼ºµÄ°ì·¨À´²éÕÒËùÐèÒªµÄÍ·ÎļþºÍ¿âÎļþ¡£

    ¡¡¡¡GCC²ÉÓÃËÑË÷Ŀ¼µÄ°ì·¨À´²éÕÒËùÐèÒªµÄÎļþ£¬-IÑ¡Ïî¿ÉÒÔÏòGCCµÄÍ·ÎļþËÑË÷·¾¶ÖÐÌí¼ÓеÄĿ¼¡£ÀýÈ磬Èç¹ûÔÚ/home/xiaowp/include/Ŀ¼ÏÂÓбàÒëʱËùÐèÒªµÄÍ·Îļþ£¬ÎªÁËÈÃGCCÄܹ»Ë³ÀûµØÕÒµ½ËüÃÇ£¬¾Í¿ÉÒÔʹÓÃ-IÑ¡Ï

    ¡¡¡¡# gcc foo.c -I /home/xiaowp/include -o foo

    ¡¡¡¡Í¬Ñù£¬Èç¹ûʹÓÃÁ˲»ÔÚ±ê׼λÖõĿâÎļþ£¬ÄÇô¿ÉÒÔͨ¹ý-LÑ¡ÏîÏòGCCµÄ¿âÎļþËÑË÷·¾¶ÖÐÌí¼ÓеÄĿ¼¡£ÀýÈ磬Èç¹ûÔÚ/home/xiaowp/lib/Ŀ¼ÏÂÓÐÁ´½ÓʱËùÐèÒªµÄ¿âÎļþlibfoo.so£¬ÎªÁËÈÃGCCÄܹ»Ë³ÀûµØÕÒµ½Ëü£¬¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁ

    ¡¡¡¡# gcc foo.c -L /home/xiaowp/lib -lfoo -o foo

    ¡¡¡¡ÖµµÃºÃºÃ½âÊÍһϵÄÊÇ-lÑ¡ÏËüָʾGCCÈ¥Á¬½Ó¿âÎļþlibfoo.so¡£LinuxÏ µÄ¿âÎļþÔÚÃüÃûʱÓÐÒ»¸öÔ¼¶¨£¬ÄǾÍÊÇÓ¦¸ÃÒÔlibÈý¸ö×Öĸ¿ªÍ·£¬ÓÉÓÚËùÓеĿâÎļþ¶¼×ñÑ­ÁËͬÑùµÄ¹æ·¶£¬Òò´ËÔÚÓÃ-lÑ¡ÏîÖ¸¶¨Á´½ÓµÄ¿âÎļþÃûʱ¿ÉÒÔʡȥ libÈý¸ö×Öĸ£¬Ò²¾ÍÊÇ˵GCCÔÚ¶Ô-lfoo½øÐд¦Àíʱ£¬»á×Ô¶¯È¥Á´½ÓÃûΪlibfoo.soµÄÎļþ¡£

    ¡¡¡¡LinuxϵĿâÎļþ·ÖΪÁ½´óÀà·Ö±ðÊǶ¯Ì¬Á´½Ó¿â£¨Í¨³£ÒÔ.so½á⣩ºÍ¾²Ì¬Á´ ½Ó¿â£¨Í¨³£ÒÔ.a½á⣩£¬Á½ÕߵIJî±ð½öÔÚ³ÌÐòÖ´ÐÐʱËùÐèµÄ´úÂëÊÇÔÚÔËÐÐʱ¶¯Ì¬¼ÓÔØµÄ£¬»¹ÊÇÔÚ±àÒëʱ¾²Ì¬¼ÓÔØµÄ¡£Ä¬ÈÏÇé¿öÏ£¬GCCÔÚÁ´½ÓʱÓÅÏÈʹÓö¯Ì¬Á´ ½Ó¿â£¬Ö»Óе±¶¯Ì¬Á´½Ó¿â²»´æÔÚʱ²Å¿¼ÂÇʹÓþ²Ì¬Á´½Ó¿â£¬Èç¹ûÐèÒªµÄ»°¿ÉÒÔÔÚ±àÒëʱ¼ÓÉÏ-staticÑ¡Ïî£¬Ç¿ÖÆÊ¹Óþ²Ì¬Á´½Ó¿â¡£ÀýÈ磬Èç¹ûÔÚ /home/xiaowp/lib/Ŀ¼ÏÂÓÐÁ´½ÓʱËùÐèÒªµÄ¿âÎļþlibfoo.soºÍlibfoo.a£¬ÎªÁËÈà GCCÔÚÁ´½ÓʱֻÓõ½¾²Ì¬Á´½Ó¿â£¬¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁ

    ¡¡¡¡# gcc foo.c -L /home/xiaowp/lib -static -lfoo -o foo