Next: Dlpreopening, Up: Dlopened modules [Contents][Index]
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤Ï¡¤¥×¥í¥°¥é¥à¥·¥ó¥Ü¥ë¤òdlsym
(¤Þ¤¿¤Ï
¤½¤ÎÅù²Á)´Ø¿ô¤òÍѤ¤¤Æ¥À¥¤¥Ê¥ß¥Ã¥¯¤Ë²ò·è¤¹¤ë¤¿¤á¤Ë¡¤ÆÃÊ̤ËÀë¸À¤¹¤ëɬÍ×
¤¬¤¢¤ë¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥
libtool¤Ï¡¤‘-export-dynamic’¤È‘-module’¥ê¥ó¥¯¥Õ¥é¥°¤òÄ󶡤· (see Link mode)¡¤¤½¤ì¤Ï¤³¤ÎÀë¸À¤ò¹Ô¤¤¤Þ¤¹¡¥Â¾¤Î¥â¥¸¥å¡¼¥ë¤ädlopen ¤µ¤ì¤Æ¤¤¤ëlibtool¥é¥¤¥Ö¥é¥ê¤òdlopen¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ò¥ê ¥ó¥¯¤¹¤ë¾ì¹ç¡¤¤³¤ì¤é¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
Î㤨¤Ð¡¤¸å¤Ç¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ëdlopen¤µ¤ì¤ë¶¦Í¥é¥¤¥Ö¥é¥ê libhello¤ò¥Ó¥ë¥É¤·¤¿¤¤¾ì¹ç¡¤Â¾¤Î¥ê¥ó¥¯¥ª¥×¥·¥ç¥ó¤Ë ‘-module’¤ò²Ã¤¨¤Þ¤¹¡¥
burger$ libtool --mode=link gcc -module -o libhello.la foo.lo \ hello.lo -rpath /usr/local/lib -lm burger$
¼Â¹Ô·Á¼°¤«¤é¤Î¥·¥ó¥Ü¥ë¤¬¡¤dlopen¤·¤¿¤¤¥é¥¤¥Ö¥é¥ê¤Î̤²ò·è¤Î»²¾È ¤òËþ¤µ¤»¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¤¥Õ¥é¥°‘-export-dynamic’¤ò»ÈÍѤ¹¤ëɬÍ× ¤¬¤¢¤ê¤Þ¤¹¡¥dlopen¤ò¸Æ¤Ó½Ð¤¹¼Â¹Ô·Á¼°¤ò¥ê¥ó¥¯¤¹¤ë¤È¤¡¤ ‘-export-dynamic’ ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
burger$ libtool --mode=link gcc -export-dynamic -o hell-dlopener main.o burger$