Next: Debugging executables, Previous: Linking libraries, Up: Using libtool [Contents][Index]
¥é¥¤¥Ö¥é¥ê¤ò¼Â¹Ô·Á¼°¤È¥ê¥ó¥¯¤¹¤ëÁ°¤Ë¡¤¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë(¹±µ×Ū¤Ê ¾ì½ê¤Ë¤½¤ì¤òÇÛÃÖ¤¹¤ë)¾ì½ê¤òÁªÂò¤·¤¿¾ì¹ç¡¤¥ê¥ó¥¯¤¹¤ë¤¿¤á¤Ëlibtool¤ò»ÈÍÑ ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡¥¥é¥¤¥Ö¥é¥ê¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¤¿¤á¡¤Ã±½ã¤ËŬÀÚ¤Ê ‘-L’¤È‘-l’¥Õ¥é¥°¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
¥·¥¹¥Æ¥à¤Î¥ê¥ó¥«¤Ë¤è¤Ã¤Æ¤Ï¡¤·ë²Ì¤È¤·¤ÆÀ¸¤¸¤ë¼Â¹Ô·Á¼°¤Ë¡¤¶¦Í¥é¥¤¥Ö¥é¥ê ¤Î´°Á´¤Ê¥Ç¥£¥ì¥¯¥È¥ê̾¤ÎÉ乿²½¤ò¶¯Íפ¹¤ë¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥libtool¤Ï¡¤¹± µ×Ū¤Ê¥Ç¥£¥ì¥¯¥È¥ê̾¤Î¤ß¤ò¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¼Â¹Ô·Á¼°¤Ë½ñ¤¹þ¤à¤³¤È¤ò³Î ¼Â¤Ë¤¹¤ë¤¿¤á¡¤ÆÃÊ̤ÊËâË¡¤Ç¤³¤ÎÀ߷ץߥ¹¤Ë´Ø¤·¤ÆÆ°ºî¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
¤³¤Î¥Ð¥°¤Î½ÅÍ×À¤Ï¸«Íî¤È¤·¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡¥¤½¤ì¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î˽Áö¤Ï ÌÀÇò¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¤½¤ì¤Ï¥»¥¥å¥ê¥Æ¥£¥Û¡¼¥ë¤òºîÀ®¤·¡¤¤µ¤é¤Ë°¤¤¤³¤È¤Ë ¤Ï¡¤¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë¸å¤Ë¥é¥¤¥Ö¥é¥ê¥½¡¼¥¹¥³¡¼¥É¤òÊÔ½¸¤·¤¿¾ì¹ç¡¤ ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Îưºî¤òÊѹ¹¤·¤Æ¤·¤Þ¤¦¤Ç¤·¤ç¤¦¡ª
¤½¤Î¤¿¤á¡¤¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëÁ°¤Ë¥é¥¤¥Ö¥é¥ê¤È¥×¥í¥°¥é¥à¤ò¥ê¥ó¥¯¤µ¤»¤¿¤¤¾ì ¹ç¡¤¥ê¥ó¥¯¤¹¤ë¤¿¤á¤Ëlibtool¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¸Å¤¤ÊýË¡¤Ï¡¤°Ê²¼¤Î¤è¤¦¤Ë ¤Ê¤ê¤Þ¤¹¡¥
burger$ gcc -g -O -o hell.old main.o libhello.a -lm burger$
libtool¤ÎÊýË¡¤Ï¡¤¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹2(see Link mode)¡¥
a23$ libtool --mode=link gcc -g -O -o hell main.o libhello.la -lm gcc -g -O -o hell main.o ./.libs/libhello.a -lm a23$
¿¿¼Â¤È¤·¤Æ¤Ï¤¢¤Þ¤ê¤Ëñ½ã¤Ë¸«¤¨¤Þ¤¹¡¥libtool¤¬¹Ô¤¦¤³¤È¤Ï¡¤ libhello.la¤ò./.libs/libhello.a¤ËÊÑ´¹¤¹¤ë¤³¤È¤¬ ¤¹¤Ù¤Æ¤Ç¤¹¤¬¡¤‘a23’¤Ë¤Ï¶¦Í¥é¥¤¥Ö¥é¥ê¤¬¤Ê¤¤¤³¤È¤ò˺¤ì¤Ê¤¤¤Ç¤¯¤À¤µ ¤¤¡¥
‘burger’¤Ç¤Ï¡¤¾õ¶·¤¬°Û¤Ê¤ê¤Þ¤¹¡¥
burger$ libtool --mode=link gcc -g -O -o hell main.o libhello.la -lm gcc -g -O -o .libs/hell main.o -L./.libs -R/usr/local/lib -lhello -lm creating hell burger$
¤µ¤Æ¡¤libhello.la¤¬´û¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤È²¾Äꤷ¡¤¿·¤·¤¤¥× ¥í¥°¥é¥à¤ò¤½¤ì¤È¥ê¥ó¥¯¤·¤¿¤¤¤È¤·¤Þ¤¹¡¥¼«Ê¬¤Ç¤½¤ì¤¬¤¢¤ë¾ì½ê¤òõ¤·¡¤°Ê²¼ ¤ò¼Â¹Ô¤·¤Þ¤¹¡¥
burger$ gcc -g -O -o test test.o -L/usr/local/lib -lhello
¤·¤«¤·¡¤/usr/local/lib¤¬É¸½à¤Î¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤Ë̵¤¤¾ì¹ç¡¤
test
¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡¥¤·¤«¤·¡¤´û¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ
¤¤¤ëlibtool¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤¿¤álibtool¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¤¤½¤ì¤Ï The
Right Thing (TM) (Àµ²ò)¤È¤Ê¤ê¤Þ¤¹¡¥
burger$ libtool --mode=link gcc -g -O -o test test.o /usr/local/lib/libhello.la gcc -g -O -o .libs/test test.o -Wl,--rpath -Wl,/usr/local/lib /usr/local/lib/libhello.a -lm creating test burger$
libtool¤¬¡¤¥é¥¤¥Ö¥é¥êlibhello.la¤¬°Í¸¤·¤Æ¤¤¤ë‘-lm’ƱÍÍ¡¤É¬Í×¤Ê¥é ¥ó¥¿¥¤¥à¥Ñ¥¹¥Õ¥é¥°¤òÄɲ䷤Ƥ¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡¥¤¤¤¤¤Ç¤¹¤Í¡¤¤Õ¤Ã ¤Õ¡©
libtool¤¬¥é¥Ã¥Ñ¡¼¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤Î¤Ç¡¤¥¤¥ó¥¹¥È¡¼¥ë¤È¥Ç¥Ð¥Ã¥°¤Ë¤â libtool¤ò»ÈÍѤ·¤¿¤Û¤¦¤¬¤¤¤¤¤Ç¤·¤ç¤¦¡¥¤·¤«¤·¡¤¥×¥í¥°¥é¥à¤Ï¥¤¥ó¥¹¥È¡¼¥ë ¤µ¤ì¤Æ¤¤¤Ê¤¤libtool¥é¥¤¥Ö¥é¥ê¤Ë¤ÏÁ´¤¯°Í¸¤·¤Ê¤¤¤Î¤Ç¡¤¥é¥Ã¥Ñ¡¼¥¹¥¯¥ê¥× ¥È¤òÍѤ¤¤Ê¤¤¾ì¹ç¤Ç¤â¤ª¤½¤é¤¯ÍÍѤǤ·¤ç¤¦¡¥¤³¤Î¾ì¹ç¤Ï¡¤¥é¥Ã¥Ñ¡¼¥¹¥¯¥ê¥× ¥È¤ÎºîÀ®¤òÈò¤±¤ë¤¿¤á¡¤¤ª¤½¤é¤¯¤è¤ê¸¤¯libtool¤òºîÀ®¤Ç¤¤¿¤Ç¤·¤ç¤¦¤¬¡¤ ¤³¤ì¤ÏÆÉ¼Ô¤Î±é½¬¤È¤·¤Æ»Ä¤·¤Æ¤ª¤¤Þ¤¹¡¥
¼Â¹Ô·Á¼°hell
¤Ï¡¤¼ÂºÝ¤Ë¤Ï.libs¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë
ºîÀ®¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡¥¤½¤·¤Æ¡¤¥é¥Ã¥Ñ¡¼¥¹¥¯¥ê¥×¥È¤Ï¸½ºß¤Î¥Ç¥£
¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¤Þ¤¹¡¥
NetBSD 1.2¤Ç¤Ï¡¤libtool¤Ï‘-R/usr/local/lib’¥³¥ó¥Ñ¥¤¥é¥Õ¥é¥°¤ò»ÈÍÑ ¤·¤Æ¡¤libhello¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¤¥ó¥¹¥È¡¼¥ë¤òÉ乿²½¤·¤Þ¤¹¡¥¤½¤· ¤Æ¡¤¥é¥Ã¥Ñ¡¼¥¹¥¯¥ê¥×¥È¤Ï¡¤Àµ¤·¤¯¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¤Þ¤Ç¼Â¹Ô·Á¼°¤¬Àµ¤·¤¤ (./.libs¤Ë¤¢¤ë)¶¦Í¥é¥¤¥Ö¥é¥ê¤ò¸«¤Ä¤±¤ë¤³¤È¤òÊݾڤ·¤Þ ¤¹¡¥
Æó¤Ä¤Î°Û¤Ê¤ë¥×¥í¥°¥é¥à¤òÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡¥
burger$ time ./hell.old Welcome to GNU Hell! ** This is not GNU Hello. There is no built-in mail reader. ** 0.21 real 0.02 user 0.08 sys burger$ time ./hell Welcome to GNU Hell! ** This is not GNU Hello. There is no built-in mail reader. ** 0.63 real 0.09 user 0.59 sys burger$
¥é¥Ã¥Ñ¡¼¥¹¥¯¥ê¥×¥È¤Ï¼Â¹Ô¤Ë¤«¤Ê¤ê»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¤¬¡¤¶¦Í¥é¥¤¥Ö¥é¥ê¤¬¥¤ ¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¤¾¯¤Ê¤¯¤È¤â·ë²Ì¤ÏÀµ¤·¤¯¤Ê¤ê¤Þ¤¹¡¥
¤½¤Î¤¿¤á¡¤¶¦Í¥é¥¤¥Ö¥é¥ê¤¬¤â¤¿¤é¤·¤¿¡¤Á´ÂÎŪ¤Ê¥¹¥Ú¡¼¥¹ºï¸º¤Ï¤Ï¤É¤¦¤Ê¤Ã ¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¡©
burger$ ls -l hell.old libhello.a -rwxr-xr-x 1 gord gord 15481 Nov 14 12:11 hell.old -rw-r--r-- 1 gord gord 4274 Nov 13 18:02 libhello.a burger$ ls -l .libs/hell .libs/libhello.* -rwxr-xr-x 1 gord gord 11647 Nov 14 12:10 .libs/hell -rw-r--r-- 1 gord gord 4274 Nov 13 18:44 .libs/libhello.a -rwxr-xr-x 1 gord gord 12205 Nov 13 18:44 .libs/libhello.so.0.0 burger$
¤¦¡¼¤ó¡¤¤À¤á¤À¤Ê¤¢3¡¥¤ª¤½¤é¤¯¡¤ »ä¤Ï¤³¤Î¥×¥í¥¸¥§¥¯¥È¤òÇ˲õ¤·¡¤ºîÀ®Ãæ¤Î¤æ¤ê¤«¤´¤ò¼è¤ê¾å¤²¤¿¤Û¤¦¤¬¤¤¤¤¤Ç ¤·¤ç¤¦¡¥
¼ÂºÝ¡¤¤½¤ì¤Ï½ÅÍפʤ³¤È¤ò¾ÚÌÀ¤·¤Æ¤¤¤Þ¤¹¡¥¶¦Í¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¤¤½¤ì¤¬(´Ø Ï¢¤¹¤ë)Ê£»¨¤µ¤Î¤¿¤á¡¤¥ª¡¼¥Ð¡¼¤Ø¥Ã¥É¤ò¤¬¤¢¤ê¤Þ¤¹¡¥¤³¤Î¾õ¶·¤Ç¤Ï¡¤¥À¥¤¥Ê ¥ß¥Ã¥¯¤Î²ÁÃͤÏ8¥¥í¥Ð¥¤¥È¤Ç¡¤Êó½·¤ÏÌó4¥¥í¥Ð¥¤¥È¤Ç¤¹¡¥¤½¤Î¤¿¤á¡¤¾¯¤Ê¤¯ ¤È¤âÆó¡¤»°¸Ä°Ê¾å¤Î¥×¥í¥°¥é¥à¤È¥ê¥ó¥¯¤¹¤ë¤Þ¤Ç¡¤¶¦Í¤µ¤ì¤ë libhello¤ò°Ý»ý¤¹¤ë¤³¤È¤ÏÍøÅÀ¤Ë¤Ê¤ê¤Þ¤»¤ó¡¥
¤·¤«¤·¡¤¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ ¤¤¤Ê¤¤libtool¥é¥¤¥Ö¥é¥ê¤Ë¥ê¥ó¥¯¤¹¤ë¤¿¤á¤Ë¡¤‘-L’¤ä‘-l’¥Õ¥é¥° ¤Î»ÈÍѤÏÈò¤±¤¿¤Û¤¦¤¬¤¤¤¤¤Ç¤·¤ç¤¦¡¥‘.la’¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¡¤ ../intl/libintl.la¤Î¤è¤¦¤ÊÁêÂХѥ¹¤Î¤ß¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡¥¤³¤ì ¤Ï¡¤¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¶¦Í¥é¥¤¥Ö¥é¥ê¤ËÂФ·¥ê¥ó¥¯¤¹¤ë¤È¤¡¤¤¢¤é¤æ ¤ëÛ£Ëæ¤µ¤ò¼è¤ê½ü¤¯¤¿¤á·èÄꤵ¤ì¤¿À߷פǤ¹¡¥
ÌõÃí¡§¸¶Ê¸¤Ï¡¤Well, that sucks.
Next: Debugging executables, Previous: Linking libraries, Up: Using libtool [Contents][Index]