Next: Linking executables, Previous: Creating object files, Up: Using libtool [Contents][Index]
libtool¤òÍѤ¤¤Ê¤¤¾ì¹ç¡¤¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¤¿¤á¡¤¥×¥í¥°¥é
¥Þ¤Ïar
¥³¥Þ¥ó¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤Þ¤·¤¿¡¥
burger$ ar cru libhello.a hello.o foo.o burger$
¤·¤«¤·¤â¤Á¤í¤ó¡¤¤½¤ì¤À¤±¤Ç¤Ï¤¢¤Þ¤ê¤Ëñ½ã¤¹¤®¤Æ¡¤Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï(¤½
¤ì°Ê¾å¤Î¥«¥ë¥Þ¤ä²¿¤«¤òÍ¿¤¨¤ë¤¿¤á)·ë²Ì¤È¤·¤ÆÀ¸À®¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¾å¤Ç¡¤
ranlib
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
burger$ ranlib libhello.a burger$
libtool¤Î“¥é¥¤¥Ö¥é¥ê¤Ï¥×¥í¥°¥é¥à”¤È¤¤¤¦¥¢¥×¥í¡¼¥Á¤Ç¤¢¤ë¤È¤¤¤ë¤³¤Îºî
¶È¤ËÂФ·¤Æ¡¤C¥³¥ó¥Ñ¥¤¥é¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤è¤ê¼«Á³¤Ë´¶¤¸¤é¤ì¤Þ¤¹¡¥¤½¤Î
¤¿¤á¡¤¶¦Í¥é¥¤¥Ö¥é¥ê¤¬Ìµ¤¤¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¤libtool¤Ïñ½ã¤Ë¥·¥¹¥Æ
¥à¤Îar
(¤½¤·¤Æ²Äǽ¤Ê¤éranlib
)¥³¥Þ¥ó¥É¤Î¥é¥Ã¥Ñ¡¼¤È¤·¤ÆÆ°ºî
¤·¤Þ¤¹¡¥
¤Þ¤¿¡¤libtool¤Î¥é¥¤¥Ö¥é¥ê̾¤Ï¡¤É¸½à¤Î̾Á°(‘.a’ÀÜÈø»Ò¤ÎÂå¤ï¤ê¤Ë ‘.la’ÀÜÈø»Ò¤ò»ý¤Á¤Þ¤¹)¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡¥libtool¤Î°ú¿ô¤Ï¡¤¥³¥ó¥Ñ¥¤¥é¤Ç libhello.la¤È¤¤¤¦Ì¾¤Î¼Â¹Ô·Á¼°¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë»ÈÍѤ·¤¿¤Î¤ÈƱ¤¸¤â ¤Î¤Ç¤¹(see Link mode)¡¥
a23$ libtool --mode=link gcc -g -O -o libhello.la foo.o hello.o libtool: cannot build libtool library `libhello.la' from non-libtool \ objects a23$
¤¢¤¡¡ªlibtool¤ÏÄ̾ï¤Î¥¨¥é¡¼¤òÆÀ¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¿…¥é¥¤¥Ö¥é¥ê¥ª¥Ö¥¸¥§ ¥¯¥È¤ÎÂå¤ï¤ê¤Ë¡¤É¸½à¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¥é¥¤¥Ö¥é¥ê¤ò¥Ó¥ë¥É¤·¤Æ¤¤¤Þ¤¹¡¥¤³ ¤ì¤Ï¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤Ç¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¤¶¦Í¥é¥¤¥Ö¥é¥ê¥·¥¹¥Æ¥à ¤Ç¤ÏÈó¾ï¤Ë½ÅÍפǤ¹¡¥
¤½¤Î¤¿¤á¡¤º£²ó¤Ï¥é¥¤¥Ö¥é¥ê¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤òÍѤ¤¤Æ¡¤¤â¤¦°ìÅٻ¤Æ
¤ß¤Þ¤·¤ç¤¦¡¥foo.c¤¬cos
¿ô³Ø¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Æ¤¤¤ë¤Î¤Ç¡¤
¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë-lm¤ò²Ã¤¨¤ëɬÍפ¬¤¢¤ë¤³¤È¤â˺¤ì¤Ê¤¤¤Ç¤¯¤À¤µ¤¤
(see Using libtool)¡¥
¶¦Í¥é¥¤¥Ö¥é¥ê¤ò¥Ó¥ë¥É¤¹¤ë¤½¤Î¾¤ÎÊ£»¨¤Ê¤³¤È¤Ï¡¤(ºÇ½ªÅª¤Ë)¥¤¥ó¥¹¥È¡¼¥ë ¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¥Ñ¥¹(¤³¤Î¾ì¹ç¤Ï¡¤/usr/local/lib) 1¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¤³¤È¤Ç¤¹¡¥
a23$ libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \ -rpath /usr/local/lib -lm mkdir .libs ar cru .libs/libhello.a foo.o hello.o ranlib .libs/libhello.a creating libhello.la a23$
¤µ¤Æ¡¤¶¦Í¥é¥¤¥Ö¥é¥ê¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤ÇƱ¤¸¥È¥ê¥Ã¥¯¤ò»î¤·¤Æ¤ß¤Þ¤·¤ç ¤¦¡¥
burger$ libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \ -rpath /usr/local/lib -lm mkdir .libs ld -Bshareable -o .libs/libhello.so.0.0 foo.lo hello.lo -lm ar cru .libs/libhello.a foo.o hello.o ranlib .libs/libhello.a creating libhello.la burger$
¤µ¤Æ¤½¤ì¤Ï¤«¤Ê¤ê¸¤¤¤Ç¤¹…libtool¤Ï¶¦Í¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¤¿¤á¡¤
¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤ÈƱÍͤˡ¤Û£Ëæ¤Êld
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¤À¤±
¤Ç¤¹¡¥
libtool¤¬¡¤¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¯¡¤.libs¥µ¥Ö¥Ç¥£¥ì ¥¯¥È¥ê¤Ë;ʬ¤Ê¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡¥¤³¤Îµ¡Ç½¤Ï¡¤¥Ó ¥ë¥É¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¤ì¤¤¤Ë¤¹¤ë¤Î¤ò¤è¤ê´Êñ¤Ë¤¹¤ë¤¿¤á¤È¡¤¤¿¤Þ¤¿¤Þ libtool¤Î»ÈÍѤò˺¤ì¤Æ¤¤¤ÆÂ¾¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¤¡¤³Î¼Â¤Ë¼ê¤Ò¤É¤¯ ¼ºÇÔ¤¹¤ë¤Î¤ÇÌò¤ËΩ¤Á¤Þ¤¹¡¥
rpath
¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¤libtool¤Ï¥³¥ó¥Ó¥Ë¥¨¥ó¥¹¥¢¡¼¥«
¥¤¥Ö¤ò¥Ó¥ë¥É¤·¤Þ¤¹¤¬¡¤¤½¤ì¤Ï¶¦Í¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó(see Static libraries)