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

²ËÄñÈëÃÅ:LinuxÖ®Makefile¸ÅÊö

·¢²¼Ê±¼ä:2006-03-08 01:36:35À´Ô´:ºìÁª×÷Õß:artiomgy
¡¡¡¡Ê²Ã´ÊÇmakefile£¿
¡¡¡¡»òÐíºÜ¶àWinodwsµÄ³ÌÐòÔ±¶¼²»ÖªµÀÕâ¸ö¶«Î÷£¬ÒòΪÄÇЩWindowsµÄIDE¶¼ÎªÄã×öÁËÕâ¸ö¹¤×÷£¬µ«ÎÒ¾õµÃÒª×÷Ò»¸öºÃµÄºÍprofessionalµÄ³ÌÐòÔ±£¬makefile»¹ÊÇÒª¶®¡£Õâ¾ÍºÃÏñÏÖÔÚÓÐÕâô¶àµÄHTMLµÄ±à¼­Æ÷£¬µ«Èç¹ûÄãÏë³ÉΪһ¸öרҵÈËÊ¿£¬Ä㻹ÊÇÒªÁ˽âHTMLµÄ±êʶµÄº¬Òå¡£ÌرðÔÚUnixϵÄÈí¼þ±àÒ룬Äã¾Í²»Äܲ»×Ô¼ºÐ´makefileÁË£¬»á²»»áдmakefile£¬´ÓÒ»¸ö²àÃæ˵Ã÷ÁËÒ»¸öÈËÊÇ·ñ¾ß±¸Íê³É´óÐ͹¤³ÌµÄÄÜÁ¦¡£
¡¡¡¡
¡¡¡¡ÒòΪ£¬makefile¹Øϵµ½ÁËÕû¸ö¹¤³ÌµÄ±àÒë¹æÔò¡£Ò»¸ö¹¤³ÌÖеÄÔ´Îļþ²»¼ÆÊý£¬Æä°´ÀàÐÍ¡¢¹¦ÄÜ¡¢Ä£¿é·Ö±ð·ÅÔÚÈô¸É¸öĿ¼ÖУ¬makefile¶¨ÒåÁËһϵÁеĹæÔòÀ´Ö¸¶¨£¬ÄÄЩÎļþÐèÒªÏȱàÒ룬ÄÄЩÎļþÐèÒªºó±àÒ룬ÄÄЩÎļþÐèÒªÖØбàÒ룬ÉõÖÁÓÚ½øÐиü¸´ÔӵŦÄܲÙ×÷£¬ÒòΪmakefile¾ÍÏñÒ»¸öShell½Å±¾Ò»Ñù£¬ÆäÖÐÒ²¿ÉÒÔÖ´ÐвÙ×÷ϵͳµÄÃüÁî¡£
¡¡¡¡
¡¡¡¡makefile´øÀ´µÄºÃ´¦¾ÍÊÇ----¡°×Ô¶¯»¯±àÒ롱£¬Ò»µ©Ð´ºÃ£¬Ö»ÐèÒªÒ»¸ömakeÃüÁÕû¸ö¹¤³ÌÍêÈ«×Ô¶¯±àÒ룬¼«´óµÄÌá¸ßÁËÈí¼þ¿ª·¢µÄЧÂÊ¡£makeÊÇÒ»¸öÃüÁ¾ß£¬ÊÇÒ»¸ö½âÊÍmakefileÖÐÖ¸ÁîµÄÃüÁ¾ß£¬Ò»°ãÀ´Ëµ£¬´ó¶àÊýµÄIDE¶¼ÓÐÕâ¸öÃüÁ±ÈÈ磺DelphiµÄmake£¬Visual C++µÄnmake£¬LinuxÏÂGNUµÄmake¡£¿É¼û£¬makefile¶¼³ÉΪÁËÒ»ÖÖÔÚ¹¤³Ì·½ÃæµÄ±àÒë·½·¨¡£
¡¡¡¡
¡¡¡¡ÏÖÔÚ½²ÊöÈçºÎдmakefileµÄÎÄÕ±ȽÏÉÙ£¬ÕâÊÇÎÒÏëдÕâƪÎÄÕµÄÔ­Òò¡£µ±È»£¬²»Í¬²úÉ̵Ämake¸÷²»Ïàͬ£¬Ò²Óв»Í¬µÄÓï·¨£¬µ«Æä±¾Öʶ¼ÊÇÔÚ¡°ÎļþÒÀÀµÐÔ¡±ÉÏ×öÎÄÕ£¬ÕâÀÎÒ½ö¶ÔGNUµÄmake½øÐн²Êö£¬ÎҵĻ·¾³ÊÇRedHat Linux 8.0£¬makeµÄ°æ±¾ÊÇ3.80¡£±Ø¾¹£¬Õâ¸ömakeÊÇÓ¦ÓÃ×îΪ¹ã·ºµÄ£¬Ò²ÊÇÓõÃ×î¶àµÄ¡£¶øÇÒÆ仹ÊÇ×î×ñÑ­ÓÚIEEE 1003.2-1992 ±ê×¼µÄ£¨POSIX.2£©¡£
¡¡¡¡
¡¡¡¡ÔÚÕâƪÎĵµÖУ¬½«ÒÔC/C++µÄÔ´Âë×÷ΪÎÒÃÇ»ù´¡£¬ËùÒÔ±ØÈ»É漰һЩ¹ØÓÚC/C++µÄ±àÒëµÄ֪ʶ£¬Ïà¹ØÓÚÕâ·½ÃæµÄÄÚÈÝ£¬»¹Çë¸÷λ²é¿´Ïà¹ØµÄ±àÒëÆ÷µÄÎĵµ¡£ÕâÀïËùĬÈϵıàÒëÆ÷ÊÇUNIXϵÄGCCºÍCC¡£
¡¡¡¡
¡¡¡¡¹ØÓÚ³ÌÐòµÄ±àÒëºÍÁ´½Ó
¡¡¡¡
¡¡¡¡ÔÚ´Ë£¬ÎÒÏë¶à˵¹ØÓÚ³ÌÐò±àÒëµÄһЩ¹æ·¶ºÍ·½·¨£¬Ò»°ãÀ´Ëµ£¬ÎÞÂÛÊÇC¡¢C++¡¢»¹ÊÇpas£¬Ê×ÏÈÒª°ÑÔ´Îļþ±àÒë³ÉÖмä´úÂëÎļþ£¬ÔÚWindowsÏÂÒ²¾ÍÊÇ .obj Îļþ£¬UNIXÏÂÊÇ .o Îļþ£¬¼´ Object File£¬Õâ¸ö¶¯×÷½Ð×ö±àÒ루compile£©¡£È»ºóÔÙ°Ñ´óÁ¿µÄObject FileºÏ³ÉÖ´ÐÐÎļþ£¬Õâ¸ö¶¯×÷½Ð×÷Á´½Ó£¨link£©¡£
¡¡¡¡
¡¡¡¡±àÒëʱ£¬±àÒëÆ÷ÐèÒªµÄÊÇÓï·¨µÄÕýÈ·£¬º¯ÊýÓë±äÁ¿µÄÉùÃ÷µÄÕýÈ·¡£¶ÔÓÚºóÕߣ¬Í¨³£ÊÇÄãÐèÒª¸æËß±àÒëÆ÷Í·ÎļþµÄËùÔÚλÖã¨Í·ÎļþÖÐÓ¦¸ÃÖ»ÊÇÉùÃ÷£¬¶ø¶¨ÒåÓ¦¸Ã·ÅÔÚC/C++ÎļþÖУ©£¬Ö»ÒªËùÓеÄÓï·¨ÕýÈ·£¬±àÒëÆ÷¾Í¿ÉÒÔ±àÒë³öÖмäÄ¿±êÎļþ¡£Ò»°ãÀ´Ëµ£¬Ã¿¸öÔ´Îļþ¶¼Ó¦¸Ã¶ÔÓ¦ÓÚÒ»¸öÖмäÄ¿±êÎļþ£¨OÎļþ»òÊÇOBJÎļþ£©¡£
¡¡¡¡
¡¡¡¡Á´½Óʱ£¬Ö÷ÒªÊÇÁ´½Óº¯ÊýºÍÈ«¾Ö±äÁ¿£¬ËùÒÔ£¬ÎÒÃÇ¿ÉÒÔʹÓÃÕâЩÖмäÄ¿±êÎļþ£¨OÎļþ»òÊÇOBJÎļþ£©À´Á´½ÓÎÒÃǵÄÓ¦ÓóÌÐò¡£Á´½ÓÆ÷²¢²»¹Üº¯ÊýËùÔÚµÄÔ´Îļþ£¬Ö»¹Üº¯ÊýµÄÖмäÄ¿±êÎļþ£¨Object File£©£¬ÔÚ´ó¶àÊýʱºò£¬ÓÉÓÚÔ´ÎļþÌ«¶à£¬±àÒëÉú³ÉµÄÖмäÄ¿±êÎļþÌ«¶à£¬¶øÔÚÁ´½ÓʱÐèÒªÃ÷ÏÔµØÖ¸³öÖмäÄ¿±êÎļþÃû£¬Õâ¶ÔÓÚ±àÒëºÜ²»·½±ã£¬ËùÒÔ£¬ÎÒÃÇÒª¸øÖмäÄ¿±êÎļþ´ò¸ö°ü£¬ÔÚWindowsÏÂÕâÖÖ°ü½Ð¡°¿âÎļþ¡±£¨Library File)£¬Ò²¾ÍÊÇ .lib Îļþ£¬ÔÚUNIXÏ£¬ÊÇArchive File£¬Ò²¾ÍÊÇ .a Îļþ¡£
¡¡¡¡
¡¡¡¡×ܽáһϣ¬Ô´ÎļþÊ×ÏÈ»áÉú³ÉÖмäÄ¿±êÎļþ£¬ÔÙÓÉÖмäÄ¿±êÎļþÉú³ÉÖ´ÐÐÎļþ¡£ÔÚ±àÒëʱ£¬±àÒëÆ÷Ö»¼ì²â³ÌÐòÓï·¨£¬ºÍº¯Êý¡¢±äÁ¿ÊÇ·ñ±»ÉùÃ÷¡£Èç¹ûº¯Êýδ±»ÉùÃ÷£¬±àÒëÆ÷»á¸ø³öÒ»¸ö¾¯¸æ£¬µ«¿ÉÒÔÉú³ÉObject File¡£¶øÔÚÁ´½Ó³ÌÐòʱ£¬Á´½ÓÆ÷»áÔÚËùÓеÄObject FileÖÐÕÒÑ°º¯ÊýµÄʵÏÖ£¬Èç¹ûÕÒ²»µ½£¬Äǵ½¾Í»á±¨Á´½Ó´íÎóÂ루Linker Error£©£¬ÔÚVCÏ£¬ÕâÖÖ´íÎóÒ»°ãÊÇ£ºLink 2001´íÎó£¬Òâ˼˵ÊÇ˵£¬Á´½ÓÆ÷δÄÜÕÒµ½º¯ÊýµÄʵÏÖ¡£ÄãÐèÒªÖ¸¶¨º¯ÊýµÄObject File.
¡¡¡¡
¡¡¡¡ºÃ£¬ÑÔ¹éÕý´«£¬GNUµÄmakeÓÐÐí¶àµÄÄÚÈÝ£¬ÏÐÑÔÉÙÐ𣬻¹ÊÇÈÃÎÒÃÇ¿ªÊ¼°É¡£
¡¡¡¡
¡¡¡¡Makefile ½éÉÜ
¡¡¡¡
¡¡¡¡makeÃüÁîÖ´ÐÐʱ£¬ÐèÒªÒ»¸öMakefileÎļþ£¬ÒÔ¸æËßmakeÃüÁîÐèÒªÔõôÑùµÄÈ¥±àÒëºÍÁ´½Ó³ÌÐò¡£
¡¡¡¡
¡¡¡¡Ê×ÏÈ£¬ÎÒÃÇÓÃÒ»¸öʾÀýÀ´ËµÃ÷MakefileµÄÊéд¹æÔò¡£ÒÔ±ã¸ø´ó¼ÒÒ»¸ö¸ÐÐËÈÏʶ¡£Õâ¸öʾÀýÀ´Ô´ÓÚGNUµÄmakeʹÓÃÊֲᣬÔÚÕâ¸öʾÀýÖУ¬ÎÒÃǵŤ³ÌÓÐ8¸öCÎļþ£¬ºÍ3¸öÍ·Îļþ£¬ÎÒÃÇҪдһ¸öMakefileÀ´¸æËßmakeÃüÁîÈçºÎ±àÒëºÍÁ´½ÓÕ⼸¸öÎļþ¡£ÎÒÃǵĹæÔòÊÇ£º
¡¡¡¡
¡¡¡¡1£©Èç¹ûÕâ¸ö¹¤³ÌûÓбàÒë¹ý£¬ÄÇôÎÒÃǵÄËùÓÐCÎļþ¶¼Òª±àÒë²¢±»Á´½Ó¡£
¡¡¡¡
¡¡¡¡2£©Èç¹ûÕâ¸ö¹¤³ÌµÄij¼¸¸öCÎļþ±»Ð޸ģ¬ÄÇôÎÒÃÇÖ»±àÒë±»Ð޸ĵÄCÎļþ£¬²¢Á´½ÓÄ¿±ê³ÌÐò¡£
¡¡¡¡
¡¡¡¡3£©Èç¹ûÕâ¸ö¹¤³ÌµÄÍ·Îļþ±»¸Ä±äÁË£¬ÄÇôÎÒÃÇÐèÒª±àÒëÒýÓÃÁËÕ⼸¸öÍ·ÎļþµÄCÎļþ£¬²¢Á´½ÓÄ¿±ê³ÌÐò¡£
¡¡¡¡
¡¡¡¡Ö»ÒªÎÒÃǵÄMakefileдµÃ¹»ºÃ£¬ËùÓеÄÕâÒ»ÇУ¬ÎÒÃÇÖ»ÓÃÒ»¸ömakeÃüÁî¾Í¿ÉÒÔÍê³É£¬makeÃüÁî»á×Ô¶¯ÖÇÄܵظù¾Ýµ±Ç°µÄÎļþÐ޸ĵÄÇé¿öÀ´È·¶¨ÄÄЩÎļþÐèÒªÖرàÒ룬´Ó¶ø×Ô¼º±àÒëËùÐèÒªµÄÎļþºÍÁ´½ÓÄ¿±ê³ÌÐò¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ