Previous: Installing executables, Up: Using libtool   [Contents][Index]


3.7 ¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤È¤Î¥ê¥ó¥¯

libtool¤Î»ÝÌ£¤òÃΤäơ¤ar¤Èranlib¤Î¶ò¤«¤µ¤Ø¤Ê¤¼Ìá¤ë¤Î¤Ç ¤·¤ç¤¦¡©¤µ¤Æ¡¤·è¤·¤Æ¶¦Í­¤µ¤ì¤ë¤Ï¤º¤¬¤Ê¤¤¥¹¥¿¥Æ¥£¥Ã¥¯¥¢¡¼¥«¥¤¥Ö¤ò¤Ä¤¯¤ë ¤³¤È¤¬Ë¾¤Þ¤·¤¤¤È¤­¤â¤¢¤ê¤Þ¤¹¡¥ºÇ¤â¤è¤¯¤¢¤ë¾õ¶·¤È¤·¤Æ¡¤Ê£¿ô¤Î°Û¤Ê¤ë¥×¥í ¥°¥é¥à¤ò¥Ó¥ë¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡¤¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î½¸¤Þ¤ê¤ò»ý¤Ã¤Æ ¤¤¤ë¤È¤­¤¬¤¢¤ê¤Þ¤¹¡¥¸Ä¡¹¤Î¥×¥í¥°¥é¥à¤ËÂФ·¡¤¤¹¤Ù¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤ ¥ë¤ò¥ê¥¹¥È¥¢¥Ã¥×¤¹¤ëÂå¤ï¤ê¤Ë¡¤¤½¤ì¤é¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤é“¥³¥ó¥Ó¥Ë¥¨¥ó¥¹ ¥é¥¤¥Ö¥é¥ê”¤òºîÀ®¤·¡¤¥é¥¤¥Ö¥é¥ê¤È¥×¥í¥°¥é¥à¤ò¥ê¥ó¥¯¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥ ¤³¤Îµ»½Ñ¤Ï¡¤Â¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥é¥¤¥Ö¥é¥ê¤Ø¤Î¥ê¥ó¥¯¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤Î¤Ç¡¤ ¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥½¡¼¥¹¤«¤é¥Ó¥ë¥É¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤¹ ¤ë¥µ¥Ý¡¼¥È¤¬·ç¤±¤Æ¤¤¤ë¡¤GNU automake¤òÊ䤦¤¿¤á¤Ë¤è¤¯»ÈÍѤµ¤ì¤Þ¤¹¡¥¤³¤Î À©¸Â¤Ï¡¤¥ê¥ê¡¼¥¹1.4¤Þ¤Ç¤ÎGNU automake¤ËÅö¤Æ¤Ï¤Þ¤ê¤Þ¤¹¡¥¤è¤ê¿·¤·¤¤¥ê¥ê¡¼ ¥¹¤Ï¡¤Â¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥½¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤Ç¤·¤ç¤¦¡¥

¤³¤Î¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥é¥¤¥Ö¥é¥ê¤È¥×¥í¥°¥é¥à¤ò¥ê¥ó¥¯¤·¤¿¤¤¤À¤±¤Î¾ì¹ç¡¤´°Á´ ¤Ëlibtool¤ò̵»ë¤·¡¤¸Å¤¤ar¤Èranlib¥³¥Þ¥ó¥É(¤ä¡¤Âбþ¤¹¤ë GNU automake ‘_LIBRARIES’µ¬Â§)¤¬»ÈÍѲÄǽ¤Ç¤¹¡¥(¤ª¤½¤é¤¯»ÈÍѤ·¤¿¤¯ ¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤¬)libtool¤ò»ÈÍѤ·¤Æ¡¤¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥¹¥È¡¼ ¥ë¤¹¤ë¤³¤È¤µ¤¨²Äǽ¤Ç¤¹¡¥

burger$ libtool --mode=install ./install-sh -c libhello.a /local/lib/libhello.a
./install-sh -c libhello.a /local/lib/libhello.a
ranlib /local/lib/libhello.a
burger$

¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ëlibtool¤ò»ÈÍѤ¹¤ë¤È¡¤¥é¥¤¥Ö¥é¥ê ¤¬(‘-s’¥Õ¥é¥°¤ò»ÈÍѤ·¤¿¥¤¥ó¥¹¥È¡¼¥é¤Î¾ì¹ç¤Î¤è¤¦¤Ë)¶öÁ³strip¤µ¤ì¤ë ¤³¤È¤«¤é¼é¤ê¡¤¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ëÀµ¤·¤¤ranlib¥³¥Þ¥ó¥É¤ÈƱÍÍ¤Ë¤Ê ¤ê¤Þ¤¹¡¥

¤·¤«¤·¡¤libtool¥é¥¤¥Ö¥é¥ê¤Ïñ¤Ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î½¸¹ç°Ê¾å¤Ç¤¹¡¥¤½ ¤ì¤é¤Ï¸Å¤¤¥¢¡¼¥«¥¤¥Ö¤Ë¤Ï¤Ê¤¤¡¤¥é¥¤¥Ö¥é¥ê¤Î°Í¸¾ðÊó¤âÅÁ¤¨¤ë¤³¤È¤¬²Äǽ¤Ç ¤¹¡¥libtool¤Î¥¹¥¿¥Æ¥£¥Ã¥¯¤Ê¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤·¤¿¤¤¾ì¹ç¡¤ ¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤Î¤ß¤Ë¶½Ì£¤¬¤¢¤ë¤³¤È¤ò¼¨¤¹¤¿¤á¡¤‘-rpath’¥Õ ¥é¥°¤ò¾Êά¤·‘-static’¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥¤½¤Î¤è¤¦¤Ê¥¹¥¿¥Æ¥£¥Ã ¥¯¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤È¤­¡¤libtool¤Ï¼ÂºÝ¤Ë¤¹¤Ù¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡ ¥¤¥ë¤È°Í¸¤¹¤ë¥é¥¤¥Ö¥é¥ê¤ò¥×¥í¥°¥é¥à¤Ë¥ê¥ó¥¯¤·¤Þ¤¹¡¥

-rpath’¤È‘-static’¤ÎξÊý¤ò¾Êά¤·¤¿¾ì¹ç¡¤libtool¤Ï¡¤Â¾¤Î libtool¥é¥¤¥Ö¥é¥ê¤Ç¡¤¶¦Í­¥é¥¤¥Ö¥é¥ê¤ÎºîÀ®¤Ë¤¹¤é»ÈÍѲÄǽ¤Êlibtool¤Î¥³¥ó ¥Ó¥Ë¥¨¥ó¥¹¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤·¤Þ¤¹¡¥¥¹¥¿¥Æ¥£¥Ã¥¯¤Ê¾ì¹ç¤Î¤è¤¦¤Ë¡¤¥é¥¤¥Ö¥é ¥ê¤Ï°ìÁȤΥª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È°Í¸¤¹¤ë¥é¥¤¥Ö¥é¥ê¤ÎÊÌ̾¤È¤·¤ÆÆ°ºî¤·¤Þ ¤¹¤¬¡¤¤³¤Î¾ì¹ç¡¤¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë´Þ¤Þ¤ì¤ë¤Û¤¦¤¬Å¬ ¤·¤Æ¤¤¤Þ¤¹¡¥¤·¤«¤·¡¤Ä¾Àܤޤ¿¤Ï´ÖÀÜŪ¤Ë¡¤Ã±°ì¤Î¥×¥í¥°¥é¥à¤ä¥é¥¤¥Ö¥é¥ê¤Ë ñ°ì¤Î¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤·¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤Æ²¼¤µ¤¤¡¥¤µ¤â ¤Ê¤±¤ì¤Ð¡¤¥·¥ó¥Ü¥ëºÆÄêµÁ¤Ë´Ø¤¹¤ë¥¨¥é¡¼¤òÆÀ¤ë¤Ç¤·¤ç¤¦¡¥

GNU automake¤ò»ÈÍѤ¹¤ë¤È¤­¡¤‘-rpath’¥ª¥×¥·¥ç¥ó¤¬¥ê¥ó¥¯»þ¤ËÅϤµ¤ì ¤Ê¤¤¤è¤¦¤Ë¡¤¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥é¥¤¥Ö¥é¥ê¤ËÂФ¹¤ëlib_LTLIBRARIES¤ÎÂå ¤ï¤ê¤Ënoinst_LTLIBRARIES¤ò»ÈÍѤ·¤¿Êý¤¬Îɤ¤¤Ç¤·¤ç¤¦¡¥

·Ð¸³Åª¤Ë¡¤ºÇÂç°ì¤Ä¤Îlibtool¥é¥¤¥Ö¥é¥ê¤Ëlibtool¤Î¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥é¥¤¥Ö¥é ¥ê¤ò¥ê¥ó¥¯¤·¡¤¥×¥í¥°¥é¥à¤Ë¤Ï¥ê¥ó¥¯¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡¤¤½¤·¤Æ¡¤ libtool¤Î¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤ò°ì¤Ä¤Î¥×¥í¥°¥é¥à¤Ë¤Î¤ß ¥ê¥ó¥¯¤·¡¤¤½¤ì¤Ï¡¤¥é¥¤¥Ö¥é¥ê°Í¸¾ðÊó¤ò¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö ¥é¥ê¤Î¥æ¡¼¥¶¤ËÅÁ¤¨¤ë¤³¤È¤¬É¬Íפʾì¹ç¤Î¤ß¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡¥

¥¹¥¿¥Æ¥£¥Ã¥¯¤Ê¥ê¥ó¥¯¤¬Å¬¤·¤Æ¤¤¤ë¡¤¤½¤Î¾¤Î°ìÈÌŪ¤Ê¾õ¶·¤Ï¡¤ÆÈΩ¤·¤¿¥Ð¥¤ ¥Ê¥ê¤òºîÀ®¤¹¤ë¤È¤­¤Ç¤¹¡¥¥ê¥ó¥¯¤Ëlibtool¤ò»ÈÍѤ·¡¤‘-all-static’¥Õ ¥é¥°¤ò²Ã¤¨¤Æ¤¯¤À¤µ¤¤¡¥