<nav id="gb9pn"></nav>

  1. <form id="gb9pn"><legend id="gb9pn"></legend></form>

    <form id="gb9pn"><legend id="gb9pn"><video id="gb9pn"></video></legend></form>
  2. µ±Ç°Î»ÖãºÊ×Ò³ > ǶÈëʽÅàѵ > ǶÈëʽѧϰ > ½²Ê¦²©ÎÄ > linux makeÃüÁî°²×°Ïê½â

    linux makeÃüÁî°²×°Ïê½â ʱ¼ä£º2018-08-16      À´Ô´£ºÎ´Öª

    ¶ÔÓÚGNU Make»òÐíºÜ¶àWindows¿ª·¢µÄ³ÌÐòÔ±²¢²»ÊǺÜÁ˽⣬ÒòΪWindowsÖеĺܶ༯³É¿ª·¢»·¾³(IDE)¶¼°ïÎÒÃÇ×öÁËÕâ¼þÊ¡£µ«ÊÇ×÷Ϊһ¸öרҵ´ÓÊÂLinuxǶÈëʽ¿ª·¢µÄ³ÌÐòÔ±¾Í±ØÐëÒªÁ˽âGNU Make£¬»á²»»áʹÓÃGNU Make´ÓÒ»¶¨½Ç¶ÈÉÏ·´Ó¦ÁËÒ»¸öÈËÊÇ·ñ¾ß±¸´óÐ͹¤³ÌÄÜÁ¦¡£±¾ÎÄÖ÷ÒªÎ§ÈÆMakeÃüÁîÕ¹¿ª£¬½éÉÜLinuxÏÂMakeµÄʹÓÃÒÔ¼°MakefileµÄÓï·¨ºÍʹÓÃMake½øÐÐÔ´Âë°²×°¡£

    Ò»¡¢Ê²Ã´ÊÇGNU Make

    GNU MakeÊÇÒ»¸ö¿ØÖÆ´Ó³ÌÐòµÄÔ´ÎļþÖÐÉú³É³ÌÐòµÄ¿ÉÖ´ÐÐÎļþºÍÆäËû·ÇÔ´ÎļþµÄ¹¤¾ß¡£

    Make¿ÉÒÔ´ÓÒ»¸öÃûΪMakefileµÄÎļþÖлñµÃÈçºÎ¹¹½¨³ÌÐòµÄ֪ʶ£¬¸ÃÎļþÁгöÁËÿ¸ö·ÇÔ´ÎļþÒÔ¼°ÈçºÎ´ÓÆäËûÎļþ¼ÆËãËü¡£µ±Äã±àдһ¸ö³ÌÐòʱ£¬ÄãÓ¦¸ÃΪËü±àдһ¸öMakefileÎļþ£¬ÕâÑù¾Í¿ÉÒÔʹÓÃMakeÀ´±àÒëºÍ°²×°Õâ¸ö³ÌÐò¡£

    ¶þ¡¢ÈçºÎ»ñÈ¡Make

    Make¿ÉÒÔÔÚGNUµÄÖ÷ÒªFTP·þÎñÆ÷ÉÏÕÒµ½£ºhttp : //ftp.gnu.org/gnu/make/ (ͨ¹ýHTTP)ºÍ ftp://ftp.gnu.org/gnu/make/ (ͨ¹ýFTP)¡£ËüÒ²¿ÉÒÔÔÚGNU¾µÏñÁбíÉÏÕÒµ½; Ç뾡¿ÉÄÜGNUµÄ¾µÏñÁбí¡£

    Èý¡¢ÎªÊ²Ã´ÐèÒªMake

    ÈκÎÒ»ÖÖ¼¼ÄÜ»ò֪ʶ¶¼ÊÇÔ´Ö®ÓÚijÖÖÉç»áÐèÇó£¬ÄÇΪʲôҪÓÃMakeÄØ?µ±ÏîĿԴÎļþºÜÉÙµÄʱºò£¬ÎÒÃÇÒ²Ðí»¹¿ÉÒÔÊÖ¶¯Ê¹ÓÃgccÃüÁîÀ´½øÐбàÒ룬µ«Êǵ±ÏîÄ¿·¢Õ¹µ½Ò»¸öÅÓ´óµÄ¹æÄ£Ê±£¬ÔÙÊÖ¶¯ÇÃgccÃüÁîÈ¥±àÒë¾Í±äµÃ²»¿ÉÄܵÄÊÂÇé¡£ËùÒÔÄØ£¬ÔÚÕâÑùµÄÀúÊ·±³¾°Ï£¬¾Í³öÏÖÁËһλ´óÅ£(˹ͼÑÇÌØ··Ñ¶ûµÂÂü)£¬ÔÚ1977Äê±´¶ûʵÑéÊÒÖÆ×÷ÁËÕâÑùÒ»¸öÈí¼þ£¬ËüµÄÃû×־ͽÐ×öMake¡£ËùÒÔʵ¼Ê¿ª·¢ÖУ¬ÎÒÃÇÔÚ±àÒë´óÐÍÏîÄ¿µÄʱºòÍùÍù»áʹÓÃMake½øÐбàÒ룬Ϊ´ËÎÒÃÇ»¹ÐèÒªÁ˽âMakeÈí¼þËùÒÀÀµµÄMakefile¹æÔòÎļþ¡£

    ËÄ¡¢Makefile

    Makefile ÎļþÐèÒª°´ÕÕijÖÖÓï·¨½øÐбàд£¬ÎļþÖÐÐèҪ˵Ã÷ÈçºÎ±àÒë¸÷¸öÔ´Îļþ²¢Á¬½ÓÉú³É¿ÉÖ´ÐÐÎļþ£¬²¢ÒªÇó¶¨ÒåÔ´ÎļþÖ®¼äµÄÒÀÀµ¹ØÏµ¡£MakefileµÄÓï·¨»¹ÊÇÂÔ΢ÓÐЩ¸´ÔÓ£¬Òòƪ·ùÓÐÏÞ£¬±¾ÎÄÖ»ÄܼòÊöMakefileµÄ±àдԭÔò¡£

    (1)MakefileµÄ×é³É²¿·Ö

    Makefile°üº¬Îå¸ö¶«Î÷£ºÏÔʾ¹æÔò£¬Òþʽ¹æÔò£¬±äÁ¿¶¨Ò壬Îļþָʾ£¬×¢ÊÍ¡£

    <1>ÏÔʽ¹æÔò,ÏÔʽ¹æÔò˵Ã÷ÁË£¬ÈçºÎÉú³ÉÒ»¸ö»ò¶àµÄµÄÄ¿±êÎļþ¡£ÕâÊÇÓÉMakefileµÄÊéдÕßÃ÷ÏÔÖ¸³ö£¬ÒªÉú³ÉµÄÎļþ£¬ÎļþµÄÒÀÀµÎļþ£¬Éú³ÉµÄÃüÁî¡£

    <2>Òþʽ¹æÔò,ÓÉÓÚÎÒÃǵÄmakeÓÐ×Ô¶¯ÍƵ¼µÄ¹¦ÄÜ£¬ËùÒÔÒþ»ÞµÄ¹æÔò¿ÉÒÔÈÃÎÒÃDZȽϴֲڵؼòÂÔµØÊéдMakefile£¬ÕâÊÇÓÉmakeËùÖ§³ÖµÄ¡£

    <3>±äÁ¿µÄ¶¨Òå,ÔÚMakefileÖÐÎÒÃÇÒª¶¨ÒåһϵÁеıäÁ¿£¬±äÁ¿Ò»°ã¶¼ÊÇ×Ö·û´®£¬Õâ¸öÓеãÄãCÓïÑÔÖеĺ꣬µ±Makefile±»Ö´ÐÐʱ£¬ÆäÖеıäÁ¿¶¼»á±»À©Õ¹µ½ÏàÓ¦µÄÒýÓÃλÖÃÉÏ¡£

    <4>Îļþָʾ,Æä°üÀ¨ÁËÈý¸ö²¿·Ö£¬Ò»¸öÊÇÔÚÒ»¸öMakefileÖÐÒýÓÃÁíÒ»¸öMakefile£¬¾ÍÏñCÓïÑÔÖеÄincludeÒ»Ñù;ÁíÒ»¸öÊÇÖ¸¸ù¾ÝijЩÇé¿öÖ¸¶¨MakefileÖеÄÓÐЧ²¿·Ö£¬¾ÍÏñCÓïÑÔÖеÄÔ¤±àÒë#ifÒ»Ñù;»¹ÓоÍÊǶ¨ÒåÒ»¸ö¶àÐеÄÃüÁî¡£ÓйØÕâÒ»²¿·ÖµÄÄÚÈÝ£¬ÎÒ»áÔÚºóÐøµÄ²¿·ÖÖн²Êö¡£

    <5>×¢ÊÍ,MakefileÖÐÖ»ÓÐÐÐ×¢ÊÍ£¬ºÍUNIXµÄShell½Å±¾Ò»Ñù£¬Æä×¢ÊÍÊÇÓÓ#”×Ö·û£¬Õâ¸ö¾ÍÏñC/C++Öеē//”Ò»Ñù¡£Èç¹ûÄãÒªÔÚÄãµÄMakefileÖÐʹÓÓ#”×Ö·û£¬¿ÉÒÔÓ÷´Ð±¿ò½øÐÐתÒ壬È磺“/#”¡£

    (2) MakefileµÄ¹æÔò

    ÎÒÃÇÏÈÀ´´ÖÂԵؿ´Ò»¿´MakefileµÄ¹æÔò¡£

    target... : prerequisites ...

    command

    ...

    ...

    targetÒ²¾ÍÊÇÒ»¸öÄ¿±êÎļþ£¬¿ÉÒÔÊÇObject File£¬Ò²¿ÉÒÔÊÇÖ´ÐÐÎļþ¡£»¹¿ÉÒÔÊÇÒ»¸ö±êÇ©(Label)£¬¶ÔÓÚ±êÇ©ÕâÖÖÌØÐÔ£¬ÔÚºóÐøµÄ“αĿ±ê”Õ½ÚÖлáÓÐÐðÊö¡£

    prerequisites¾ÍÊÇ£¬ÒªÉú³ÉÄǸötargetËùÐèÒªµÄÎļþ»òÊÇÄ¿±ê¡£

    commandÒ²¾ÍÊÇmakeÐèÒªÖ´ÐеÄÃüÁî¡£(Ò»¶¨ÒªÒÔTab¼ü×÷Ϊ¿ªÍ·)

    ÕâÊÇÒ»¸öÎļþµÄÒÀÀµ¹ØÏµ£¬Ò²¾ÍÊÇ˵£¬targetÕâÒ»¸ö»ò¶à¸öµÄÄ¿±êÎļþÒÀÀµÓÚprerequisitesÖеÄÎļþ£¬ÆäÉú³É¹æÔò¶¨ÒåÔÚcommandÖС£Ëµ°×Ò»µã¾ÍÊÇ˵£¬prerequisitesÖÐÈç¹ûÓÐÒ»¸öÒÔÉϵÄÎļþ±ÈtargetÎļþÒªÐµĻ°£¬commandËù¶¨ÒåµÄÃüÁî¾Í»á±»Ö´ÐС£Õâ¾ÍÊÇMakefileµÄ¹æÔò¡£Ò²¾ÍÊÇMakefileÖкËÐĵÄÄÚÈÝ¡£

    (3)Makefile֮ģʽ¹æÔò

    ģʽ¹æÔòÆäʵҲÊÇÆÕͨ¹æÔò£¬µ«ËüʹÓÃÁËÈç%ÕâÑùµÄͨÅä·û¡£ÈçÏÂÃæµÄÀý×Ó£º
    Linux make

    ´Ë¹æÔòÃèÊöÁËÒ»¸ö.oÎļþÈçºÎÓɶÔÓ¦µÄ.cÎļþ´´½¨¡£¹æÔòµÄÃüÁîÐÐÖÐʹÓÃÁË×Ô¶¯»¯±äÁ¿“$<”ºÍ“$@”£¬ÆäÖÐ×Ô¶¯»¯±äÁ¿“$<”´ú±í¹æÔòµÄÒÀÀµ£¬“$@”´ú±í¹æÔòµÄÄ¿±ê¡£´Ë¹æÔòÔÚÖ´ÐÐʱ£¬ÃüÁîÐÐÖеÄ×Ô¶¯»¯±äÁ¿½«¸ù¾Ýʵ¼ÊµÄÄ¿±êºÍÒÀÀµÎļþÈ¡¶ÔÓ¦Öµ¡£

    Æäº¬ÒåÊÇ£¬×ÖÖ¸³öÁË´ÓËùÓеÄ.cÎļþÉú³ÉÏàÓ¦µÄ.oÎļþµÄ¹æÔò¡£Èç¹ûÒªÉú³ÉµÄÄ¿±êÊÇ”a.o b.o”£¬ÄÇô¡¡%.c”¾ÍÊÇ”a.c b.c”¡£

    ÔÚģʽ¹æÔòÖУ¬Ä¿±êµÄ¶¨ÒåÐèÒªÓГ%”×Ö·û¡£“%”¶¨Òå¶ÔÎļþÃûµÄÆ¥Å䣬±íʾÈÎÒⳤ¶ÈµÄ·Ç¿Õ×Ö·û´®¡£ÔÚÒÀÀµÄ¿±êÖÐͬÑù¿ÉÒÔʹÓÓ%”£¬Ö»ÊÇÒÀÀµÄ¿±êÖГ%”µÄȡֵ£¬È¡¾öÓÚÆäÄ¿±ê¡£

    ×¢Ò⣺ģʽ¹æÔòÖГ%”µÄÕ¹¿ªºÍ±äÁ¿Ó뺯ÊýµÄÕ¹¿ªÊÇÓÐÇø±ðµÄ£¬“%”µÄÕ¹¿ª·¢ÉúÔÚ±äÁ¿ºÍº¯ÊýµÄÕ¹¿ªÖ®ºó¡£±äÁ¿ºÍº¯ÊýµÄÕ¹¿ª·¢ÉúÔÚmakeÔØÈëMakefileʱ£¬¶ø“%”µÄÕ¹¿ªÔò·¢ÉúÔÚÔËÐÐʱ¡£

    <1>¡¡×Ô¶¯»¯±äÁ¿

    ×Ô¶¯»¯±äÁ¿Ö»Ó¦³öÏÖÔÚ¹æÔòµÄÃüÁîÖС£

    ±äÁ¿ º¬Òå
    $@ ±íʾ¹æÔòÖеÄËùÓÐÄ¿±êÎļþµÄ¼¯ºÏ¡£ÔÚģʽ¹æÔòÖÐÈç¹ûÓжà¸öÄ¿±ê£¬“$@”¾ÍÊÇÆ¥ÅäÓÚÄ¿±êÖÐģʽ¶¨ÒåµÄ¼¯ºÏ
    $% ½öµ±Ä¿±êÊǺ¯Êý¿âÎļþʱ£¬±íʾ¹æÔòÖеÄÄ¿±ê³ÉÔ±Ãû£¬Èç¹ûÄ¿±ê²»ÊǺ¯Êý¿âÎļþ£¨UNIXÏÂÊÇ.a£¬WindowsÊÇ.lib£©£¬ÆäֵΪ¿Õ¡£
    $< ÒÀÀµÄ¿±êÖеĵÚÒ»¸öÄ¿±êÃû×Ö£¬Èç¹ûÒÀÀµÄ¿±êÊÇÒÔģʽ£¨¼´”%“£©¶¨ÒåµÄ£¬Ôò”$<”ÊÇ·ûºÏģʽµÄһϵÁеÄÎļþ¼¯
    $? ËùÓбÈÄ¿±êеÄÒÀÀµÄ¿±êµÄ¼¯ºÏ£¬ÒÔ¿Õ¸ñ·Ö¸ô
    $^ ËùÓÐÒÀÀµÄ¿±êµÄ¼¯ºÏ£¬ÒÔ¿Õ¸ñ·Ö¸ô¡£ÈçÈç¹ûÔÚÒÀÀµÄ¿±êÖÐÓжà¸öÖØ¸´µÄ£¬Ôò×Ô¶¯È¥³ýÖØ¸´µÄÒÀÀµÄ¿±ê£¬Ö»±£ÁôÒ»·Ý
    $+ ͬ”$^”£¬Ò²ÊÇËùÓÐÒÀÀµÄ¿±êµÄ¼¯ºÏ£¬Ö»ÊÇËü²»È¥³ýÖØ¸´µÄÒÀÀµÄ¿±ê¡£
    $* Ä¿±êģʽÖГ%”¼°Æä֮ǰµÄ²¿·Ö
    $(@D) “$@”µÄĿ¼²¿·Ö£¨²»ÒÔб¸Ü×÷Ϊ½á⣩£¬Èç¹û”$@”ÖÐûÓаüº¬Ð±¸Ü£¬ÆäֵΪ“.”£¨µ±Ç°Ä¿Â¼£©
    $(@F) “$@”µÄÎļþ²¿·Ö£¬Ï൱ÓÚº¯Êý”$(notdir $@)”
    $(*D) ͬ”$(@D)”£¬È¡ÎļþµÄĿ¼²¿·Ö
    $(*F) ͬ”$(@F)”£¬È¡Îļþ²¿·Ö£¬µ«²»È¡ºó׺Ãû
    $(%D) º¯Êý°üÎļþ³ÉÔ±µÄĿ¼²¿·Ö
    $(%F) º¯Êý°üÎļþ³ÉÔ±µÄÎļþÃû²¿·Ö
    $(<D) ÒÀÀµÄ¿±êÖеĵÚÒ»¸öÄ¿±êµÄĿ¼²¿·Ö
    $(<F) ÒÀÀµÄ¿±êÖеĵÚÒ»¸öÄ¿±êµÄÎļþÃû²¿·Ö
    $(^D) ËùÓÐÒÀÀµÄ¿±êÎļþÖÐĿ¼²¿·Ö£¨ÎÞÏàͬµÄ£©
    $(^F) ËùÓÐÒÀÀµÄ¿±êÎļþÖÐÎļþÃû²¿·Ö£¨ÎÞÏàͬµÄ£©
    $(+D) ËùÓÐÒÀÀµÄ¿±êÎļþÖеÄĿ¼²¿·Ö£¨¿ÉÒÔÓÐÏàͬµÄ£©
    $(+F) ËùÓÐÒÀÀµÄ¿±êÎļþÖеÄÎļþÃû²¿·Ö£¨¿ÉÒÔÓÐÏàͬµÄ£©
    $(?D) ËùÓб»¸üÐÂÎļþµÄĿ¼²¿·Ö
    $(?F) ËùÓб»¸üÐÂÎļþµÄÎļþÃû²¿·Ö

    <2>$VARºÍ$$VARµÄÇø±ð£º

    makefileÎļþÖеĹæÔò¾ø´ó²¿·Ö¶¼ÊÇʹÓÃshellÃüÁîÀ´ÊµÏֵģ¬ÕâÀï¾ÍÉæ¼°µ½Á˱äÁ¿µÄʹÓ㬰üÀ¨makefileÖеıäÁ¿ºÍshellÃüÁî·¶³ëÄڵıäÁ¿¡£ÔÚmakefileµÄ¹æÔòÃüÁîÐÐÖÐʹÓÃ$var¾ÍÊÇÔÚÃüÁîÖÐÒýÓÃmakefileµÄ±äÁ¿£¬ÕâÀï½ö½öÊǶÁÈ¡makefileµÄ±äÁ¿È»ºóÀ©Õ¹¿ª£¬½«ÆäÖµ×÷Ϊ²ÎÊý´«¸øÁËÒ»¸öshellÃüÁî;¶ø$$varÊÇÔÚ·ÃÎÊÒ»¸öshellÃüÁîÄÚ¶¨ÒåµÄ±äÁ¿£¬¶ø·ÇmakefileµÄ±äÁ¿¡£Èç¹ûij¹æÔòÓÐn¸öshellÃüÁîÐй¹³É£¬¶øÏ໥֮¼äûÓÐÓÃ';'ºÍ'\'Á¬½ÓÆðÀ´µÄ»°£¬¾ÍÊÇÏ໥֮¼äûÓйØÁªµÄshellÃüÁÏ໥֮¼äÒ²²»ÄܱäÁ¿¹²Ïí¡£

    (4)Makefile֮αĿ±ê

    ʹÓÃÆäÔ­ÒòÒ»£º±ÜÃâºÍͬÃûÎļþ³åÍ»

    ÔÚÏÖʵÖÐÄÑÃâ´æÔÚËù¶¨ÒåµÄÄ¿±êÓëËù´æÔÚµÄÄ¿±êÊÇͬÃûµÄ£¬²ÉÓÃMakefileÈçºÎ´¦ÀíÕâÖÖÇé¿öÄØ?MakefileÖеļÙÄ¿±ê(phony target)¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ¡£

    ¼ÙÄ¿±ê¿ÉÒÔʹÓÃ.PHONY¹Ø¼ü×Ö½øÐÐÉùÃ÷£¬¶ÔÓÚ¼ÙÄ¿±ê£¬¿ÉÒÔÏëÏó£¬ÒòΪ²»ÒÀÀµÓÚijÎļþ£¬make¸ÃÄ¿±êµÄʱºò£¬ÆäËùÔÚ¹æÔòµÄÃüÁî¶¼»á±»Ö´ÐС£

    Èç¹û±àдһ¸ö¹æÔò£¬²¢²»²úÉúÄ¿±êÎļþ£¬ÔòÆäÃüÁîÔÚÿ´Îmake ¸ÃÄ¿±êʱ¶¼Ö´ÐС£

    ÀýÈ磺

    clean:

    rm *.o temp

    ÒòΪ"rm"ÃüÁî²¢²»²úÉú"clean"Îļþ£¬Ôòÿ´ÎÖ´ÐÐ"make clean"µÄʱºò£¬¸ÃÃüÁî¶¼»áÖ´ÐС£Èç¹ûĿ¼ÖгöÏÖÁË"clean"Îļþ£¬Ôò¹æÔòʧЧÁË£ºÃ»ÓÐÒÀÀµÎļþ£¬Îļþ"clean"ʼÖÕÊÇеÄ£¬ÃüÁîÓÀÔ¶²»»áÖ´ÐÐ;Ϊ±ÜÃâÕâ¸öÎÊÌ⣬¿ÉʹÓÃ".PHONY"Ö¸Ã÷¸ÃÄ¿±ê¡£È磺

    .PHONY : clean

    ÕâÑùÖ´ÐÐ"make clean"»áÎÞÊÓ"clean"Îļþ´æÔÚÓë·ñ¡£

    ÒÑÖªphony Ä¿±ê²¢·ÇÊÇÓÉÆäËüÎļþÉú³ÉµÄʵ¼ÊÎļþ£¬make »áÌø¹ýÒþº¬¹æÔòËÑË÷¡£Õâ¾ÍÊÇÉùÃ÷phony Ä¿±ê»á¸ÄÉÆÐÔÄܵÄÔ­Òò£¬¼´Ê¹Äã²¢²»µ£ÐÄʵ¼ÊÎļþ´æÔÚÓë·ñ¡£

    ÍêÕûµÄÀý×ÓÈçÏ£º

    .PHONY : clean

    clean :

    rm *.o temp

    ʹÓÃÆäÔ­Òò¶þ£ºÌá¸ßÖ´ÐÐmakeµÄЧÂÊ

    µ±Ò»¸öÄ¿±ê±»ÉùÃ÷ΪαĿ±êºó£¬makeÔÚÖ´Ðд˹æÔòʱ²»»áÊÔͼȥ²éÕÒÒþº¬¹æÔòÀ´´´½¨Õâ¸öÄ¿±ê¡£ÕâÑùÒ²Ìá¸ßÁËmakeµÄÖ´ÐÐЧÂÊ£¬Í¬Ê±ÎÒÃÇÒ²²»Óõ£ÐÄÓÉÓÚÄ¿±êºÍÎļþÃûÖØÃû¶øÊ¹ÎÒÃÇµÄÆÚÍûʧ°Ü¡£

    (5)MakefileµÄ¸³Öµ

    [=]ºÍ[£º=]·ûºÅµÄÇø±ð¡£

    =

    ¿ÉÒÔÏÈʹÓúó¶¨Ò壬Õâ¾Íµ¼ÖÂmakefileÔÚÈ«²¿Õ¹¿ªºó²ÅÄܾö¶¨±äÁ¿µÄÖµ¡£

    ÓпÉÄܳöÏÖÑ­»·µÝ¹é£¬ÎÞ·¨ÔÝ¿ªµÄÎÊÌâ¡£

    £º=

    ±ØÐëÏȶ¨ÒåÈ»ºóÔÙʹÓã¬ÔÚµ±Ç°µÄλÖþͿÉÒÔ¾ö¶¨±äÁ¿µÄÖµ¡£

    ?=

    Ï൱ÓÚÑ¡ÔñÒÉÎʾ䣬Èç¹ûÇ°ÃæµÄ±äÁ¿Ã»±»¸³Öµ£¬ÄǾÍ×ö¸³Öµ²Ù×÷

    +=

    Ï൱ÓڵݼӲÙ×÷

    (6)MakefileÖ®Ö´Ðйý³Ì

    1. ÒÀ´Î¶ÁÈ¡±äÁ¿“MAKEFILES”¶¨ÒåµÄmakefileÎļþÁбí

    2. ¶ÁÈ¡¹¤×÷Ŀ¼ÏµÄmakefileÎļþ(¸ù¾ÝÃüÃûµÄ²éÕÒ˳Ðò“GNUmakefile”£¬“makefile”£¬“Makefile”£¬Ê×ÏÈÕÒµ½ÄǸö¾Í¶ÁÈ¡ÄǸö)

    3. ÒÀ´Î¶ÁÈ¡¹¤×÷Ŀ¼makefileÎļþÖÐʹÓÃָʾ·û“include”°üº¬µÄÎļþ

    4. ²éÕÒÖØ½¨ËùÓÐÒѶÁÈ¡µÄmakefileÎļþµÄ¹æÔò(Èç¹û´æÔÚÒ»¸öÄ¿±êÊǵ±Ç°¶ÁÈ¡µÄijһ¸ömakefileÎļþ£¬ÔòÖ´Ðд˹æÔòÖØ½¨´ËmakefileÎļþ£¬Íê³ÉÒÔºó´ÓµÚÒ»²½¿ªÊ¼ÖØÐÂÖ´ÐÐ)

    5. ³õʼ»¯±äÁ¿Öµ²¢Õ¹¿ªÄÇЩÐèÒªÁ¢¼´Õ¹¿ªµÄ±äÁ¿ºÍº¯Êý²¢¸ù¾ÝÔ¤ÉèÌõ¼þÈ·¶¨Ö´ÐзÖÖ§

    6. ¸ù¾Ý“ÖÕ¼«Ä¿±ê”ÒÔ¼°ÆäËûÄ¿±êµÄÒÀÀµ¹ØÏµ½¨Á¢ÒÀÀµ¹ØÏµÁ´±í

    7. Ö´Ðгý“ÖÕ¼«Ä¿±ê”ÒÔÍâµÄËùÓеÄÄ¿±êµÄ¹æÔò(¹æÔòÖÐÈç¹ûÒÀÀµÎļþÖÐÈÎÒ»¸öÎļþµÄʱ¼ä´Á±ÈÄ¿±êÎļþУ¬ÔòʹÓùæÔòËù¶¨ÒåµÄÃüÁîÖØ½¨Ä¿±êÎļþ)

    8. Ö´ÐГÖÕ¼«Ä¿±ê”ËùÔڵĹæÔò

    Î塢ʹÓÃMake½øÐÐÔ´Âë°²×°

    (1)Õý³£µÄ±àÒë°²×°/Ð¶ÔØ£º

    Ô´ÂëµÄ°²×°Ò»°ãÓÉ3¸ö²½Öè×é³É£ºÅäÖÃ(configure)¡¢±àÒë(make)¡¢°²×°(make install)¡£

    configureÎļþÊÇÒ»¸ö¿ÉÖ´ÐеĽű¾Îļþ£¬ËüÓкܶàÑ¡ÏÔÚ´ý°²×°µÄÔ´ÂëĿ¼ÏÂʹÓÃÃüÁî./configure –help¿ÉÒÔÊä³öÏêϸµÄÑ¡ÏîÁбí¡£

    ÆäÖÐ--prefixÑ¡ÏîÊÇÅäÖð²×°Ä¿Â¼£¬Èç¹û²»ÅäÖøÃÑ¡Ï°²×°ºó¿ÉÖ´ÐÐÎļþĬÈÏ·ÅÔÚ/usr /local/bin£¬¿âÎļþĬÈÏ·ÅÔÚ/usr/local/lib£¬ÅäÖÃÎļþĬÈÏ·ÅÔÚ/usr/local/etc£¬ÆäËüµÄ×ÊÔ´Îļþ·ÅÔÚ/usr /local/share£¬±È½ÏÁèÂÒ¡£

    Èç¹ûÅäÖÃÁË--prefix£¬È磺

    $ ./configure --prefix=/usr/local/test

    °²×°ºóµÄËùÓÐ×ÊÔ´Îļþ¶¼»á±»·ÅÔÚ/usr/local/testĿ¼ÖУ¬²»»á·ÖÉ¢µ½ÆäËûĿ¼¡£

    ʹÓÃ--prefixÑ¡ÏîµÄÁíÒ»¸öºÃ´¦ÊÇ·½±ãÐ¶ÔØÈí¼þ»òÒÆÖ²Èí¼þ;µ±Ä³¸ö°²×°µÄÈí¼þ²»ÔÙÐèҪʱ£¬Ö»Ðë¼òµ¥µÄɾ³ý¸Ã°²×°Ä¿Â¼£¬¾Í¿ÉÒÔ°ÑÈí¼þÐ¶ÔØµÃ¸É¸É¾»¾»;¶øÒÆÖ²Èí¼þÖ»Ð追±´Õû¸öĿ¼µ½ÁíÍâÒ»¸ö»úÆ÷¼´¿É(ÏàͬµÄ²Ù×÷ϵͳÏÂ)¡£

    µ±È»ÒªÐ¶ÔسÌÐò£¬Ò²¿ÉÒÔÔÚÔ­À´µÄmakeĿ¼ÏÂÓÃÒ»´Îmake uninstall£¬µ«Ç°ÌáÊÇMakefileÎļþÓÐuninstallÃüÁî(nodejsµÄÔ´Âë°üÀïÓÐuninstallÃüÁ²âÊÔ°æ±¾v0.10.35)¡£

    (2)Ð¶ÔØ£º

    Èç¹ûûÓÐÅäÖÃ--prefixÑ¡ÏԴÂë°üҲûÓÐÌṩmake uninstall£¬Ôò¿ÉÒÔͨ¹ýÒÔÏ·½Ê½¿ÉÒÔÍêÕûÐ¶ÔØ£º

    ÕÒÒ»¸öÁÙÊ±Ä¿Â¼ÖØÐ°²×°Ò»±é£¬È磺

    $ ./configure --prefix=/tmp/to_remove && make install

    È»ºó±éÀú/tmp/to_removeµÄÎļþ£¬É¾³ý¶ÔÓ¦°²×°Î»ÖõÄÎļþ¼´¿É(ÒòΪ/tmp/to_removeÀïµÄĿ¼½á¹¹¾ÍÊÇûÓÐÅäÖÃ--prefixÑ¡ÏîʱµÄĿ¼½á¹¹)¡£

    µ±ÏÂÔØÁËÔ´Âë¾Í¿ÉÒÔ°´ÕÕ´ËÖÖ·½·¨£¬¾Í¿ÉÒÔ½øÐÐÈí¼þµÄ°²×°ºÍÐ¶ÔØ¡£

    Áù¡¢×ܽá

    ¹ØÓÚMakefileµÄÓ÷¨£¬ÎÒÃǽñÌì¾ÍÌÖÂÛµ½ÕâÀ¶ÔÓÚÒ»¸öLinux³ÌÐòÔ±À´ËµMakefileµÄ×÷ÓúÍÖØÒª¡£¶ÔÓÚ³ÌÐòµÄ±àÒëÒÔ¼°³ÌÐòÔ±¶ÔÏîÄ¿µÄÁ˽âÓкܴóµÄ°ïÖú¡£

    ÉÏһƪ£º´óÐͳÌÐò¹ÜÀíÉñÆ÷Ö®CMake

    ÏÂһƪ£ºAndroid´®¿Úµ÷ÊÔÖúÊÖʵÏÖ

    ÈȵãÎÄÕÂÍÆ¼ö
    »ªÇåѧԱ¾ÍÒµ°ñµ¥
    ¸ßнѧԱ¾­Ñé·ÖÏí
    ÈȵãÐÂÎÅÍÆ¼ö
    ǰ̨רÏߣº010-82525158 ÆóÒµÅàѵǢ̸רÏߣº010-82525379 ԺУºÏ×÷Ǣ̸רÏߣº010-82525379 Copyright © 2004-2021 ±±¾©»ªÇåÔ¶¼û¿Æ¼¼·¢Õ¹ÓÐÏÞ¹«Ë¾ °æÈ¨ËùÓÐ £¬¾©ICP±¸16055225ºÅ-5£¬¾©¹«º£Íø°²±¸11010802025203ºÅ

    »Øµ½¶¥²¿

    welcome¹º²ÊÖÐÐÄ