PGI ¥³¥ó¥Ñ¥¤¥é¤Ë¸Â¤é¤º¡¢°ìÈÌŪ¤Ê¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¢¥¢¥»¥ó¥Ö¥ëµ¡Ç½¤È¥ê¥ó¥¯µ¡Ç½¤Ï¡¢GNU¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ò»ÈÍѤ·¤Þ¤¹¡ÊLinux ¤Î¾ì¹ç¡Ë¡£°ìÈ̤ˡ¢¥×¥í¥°¥é¥à¤Î¥³¥ó¥Ñ¥¤¥ë¤«¤é¼Â¹Ô¥â¥¸¥å¡¼¥ë¤ÎÀ¸À®¤Þ¤Ç¤Ï¡¢°Ê²¼¤ÎÆâÉôŪ¤Ê¼ê³¤¤¬¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£PGI
¥³¥ó¥Ñ¥¤¥é¤Ï°Ê²¼¤Î¼ê³¤¤ò¼«Æ°Åª¤Ë¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£°Ê²¼¤Î¼ê³¤¤ÎÆâÍƤȳƥ³¥Þ¥ó¥É¤Î¥ª¥×¥·¥ç¥ó¤òÃΤ뤿¤á¤ÎÊýË¡¤Ï¡¢¤³¤Á¤é¤ÇÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£
- ¥³¥ó¥Ñ¥¤¥ë¡õ¥³¡¼¥ÉÀ¸À® (pgi ¤Î¥³¥ó¥Ñ¥¤¥é¥³¥Þ¥ó¥É¡¦¥³¥Þ¥ó¥É¡Ë
- ¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ë¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¡¡(GNU as ¥³¥Þ¥ó¥É¡Ë
- ¥ê¥ó¥«¤Ë¤è¤ë¥é¥¤¥Ö¥é¥êÅù¤Î¥ê¥ó¥¯¤ò¹Ô¤Ã¤Æ¼Â¹Ô¥â¥¸¥å¡¼¥ë¤ÎÀ¸À®¡¡¡ÊGNU ld ¥³¥Þ¥ó¥É¡Ë
¾åµ¤Î¼ê³¤¤ÎÃæ¤Ç¡¢1¡¤2 ¤Ë´Ø¤·¤Æ¤Ï¥æ¡¼¥¶¤¬Ä¾ÀÜÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤¬¡¢3 ¤Î¥ê¥ó¥±¡¼¥¸¤Î½èÍý¤Ë´Ø¤·¤Æ¤Ï¡¢¥æ¡¼¥¶Æȼ«¤Ç GNU ¤Î ld
¥³¥Þ¥ó¥É¤Î¥ª¥×¥·¥ç¥ó¤òÁàºî¤·¤Æ¡¢¥ê¥ó¥¯»þ¤ÎÌäÂêÅù¤ËÂбþ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
°Ê²¼¤ËÀâÌÀ¤¹¤ëÆâÍƤϡ¢¥ê¥ó¥¯¤Ë¤ª¤±¤ëÍÍ¡¹¤Ê΢µ»¤ÎÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¹¡£¡Ö¥ê¥ó¥¯»þ¤Ë¤ª¤±¤ëÌäÂê¡×¤Î¿¤¯¤Ï¡¢É¬ÍפȤ¹¤ë¥é¥¤¥Ö¥é¥ê¤¬¸«¤Ä¤«¤é¤Ê¤¤ÌäÂꡢƱ¤¸´Ø¿ô¡¦¥µ¥Ö¥×¥í¥°¥é¥à¤òÊ̤Υ饤¥Ö¥é¥ê¡¦¥Õ¥¡¥¤¥ë¤«¤é¥ê¥ó¥¯¤·¤¿¤¤Åù¤ÎÂн褬¿¤¤¤¿¤á¡¢¥ê¥ó¥±¡¼¥¸¤Ë´Ø¤¹¤ë´ðËÜŪ¤ÊÃ챤òÍפ·¤Þ¤¹¡£
¤³¤³¤Ç¤Ï¡¢¥ê¥ó¥¯»þ¤Ë¤ª¤±¤ë¡Ö¥é¥¤¥Ö¥é¥ê¡×¤ÎÂнèË¡¤Ë´Ø¤·¤Æ¥Õ¥©¡¼¥«¥¹¤·¡¢¤½¤Î΢µ»¤òÀâÌÀ¤·¤Þ¤¹¡£
¡ü ¥é¥ó¥¿¥¤¥à¡¦¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤¹¤ë´ðÁÃÃμ±
¤Þ¤º»Ï¤á¤Ë¡¢¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ë¥ê¥ó¥¯¤µ¤ì¤ë¡¢¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤¹¤ë´ðÁÃŪ¤Ê»ö¹à¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à(¥ª¥Ö¥¸¥§¥¯¥È¡Ë¤Ë¥ê¥ó¥¯¤µ¤ì¤ë¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¢Â礤¯°Ê²¼¤ÎÆó¤Ä¤Î¥é¥¤¥Ö¥é¥ê·Á¼°¤¬¤¢¤ê¤Þ¤¹¡£
- ¥¹¥¿¥Æ¥£¥Ã¥¯(ÀÅŪ¡Ë¥é¥¤¥Ö¥é¥ê
- ¥·¥§¥¢¡¼¥É¡Ê¶¦Í¡Ë¥é¥¤¥Ö¥é¥ê
Æó¤ÄÌܤζ¦Í¥é¥¤¥Ö¥é¥ê¤ÎÈÏáƤˤϡ¢°ìÈ̤˥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤È¸À¤¦·Á¼°¤Î¤â¤Î¤â¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Î¶¦Í¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤ÎÆüì¤ÊÎã¤Ç¤¹¡£¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤Ï¡¢¥ê¥ó¥¯»þ¤Ë¼Â¹Ô¥â¥¸¥å¡¼¥ë¤ÎÃæ¤ËÁȤ߹þ¤Þ¤ì¤Þ¤¹¡£¥â¥¸¥å¡¼¥ë¥µ¥¤¥º¤ÏÂ礤¯¤Ê¤ê¤Þ¤¹¤¬¡¢Ê̤Υ·¥¹¥Æ¥à¾å¤ÇÆ°ºî¤µ¤»¤¿¤¤¾ì¹ç¤Ï¡¢Á´¤ÆɬÍפʥ饤¥Ö¥é¥ê¤¬ÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¡¢¤½¤Î¤Þ¤Þ¤Î·Á¤ÇÆ°ºî¤·¤Þ¤¹¡£°ìÈ̤ˡ¢¥Õ¥¡¥¤¥ë̾·Á¼°¤È¤·¤Æ¡¢lib***.a
¤È¸À¤¦ .a ¤Î̾¾Î¤¬¤Ä¤±¤é¤ì¤Æ¤ª¤ê¤Þ¤¹¡£¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢°ìÈ̤ˡ¢ar ¥³¥Þ¥ó¥É¤Ç¥ª¥Ö¥¸¥§¥¯¥È(*.o)¤ò¤Þ¤È¤á¡¢
ranlib ¥³¥Þ¥ó¥É¤Ç¥ê¥ó¥¯¤ò¹â®²½¤¹¤ëÀèƬ»Ò¤ò¤Ä¤±¡¢strip ¥³¥Þ¥ó¥É¤Ç¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òºï½ü¤·¤Þ¤¹¡£
°ìÊý¡¢¥·¥§¥¢¡¼¥É¡Ê¶¦Í¡Ë¥é¥¤¥Ö¥é¥ê¤Ï¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤Ë¥·¥¹¥Æ¥à¾å¤ËÈ÷¤¨¤Æ¤¤¤ë¡¢¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Æ»ÈÍѤ¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ê¡¢¥·¥¹¥Æ¥à¥é¥¤¥Ö¥é¥ê¤Î¥Ð¡¼¥¸¥ç¥ó¤¬°Û¤Ê¤Ã¤¿¤ê¡¢¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢¼Â¹Ô¥â¥¸¥å¡¼¥ë¤¬Æ°ºî¤·¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£°ìÈ̤ˡ¢¥Õ¥¡¥¤¥ë̾·Á¼°¤È¤·¤Æ¡¢lib***.so
¤È¸À¤¦ .so ¤Î̾¾Î¤¬¤Ä¤±¤é¤ì¤Æ¤ª¤ê¤Þ¤¹¡£¥·¥§¥¢¡¼¥É¥é¥¤¥Ö¥é¥ê¤Î°ì¤Ä¤Ç¤¢¤ë¡¢¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤È¤Ï¡¢¼Â¹Ô»þ¤Ë load/unload ¤¹¤ë¤³¤È¤¬²Äǽ¤Ê¡Ö°ÌÃÖÆÈΩ¤Ê¥é¥¤¥Ö¥é¥ê·Á¼°¡×¤Î¤â¤Î¤ò¸À¤¤¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥ê¥ó¥¯»þ¤Î¥ª¥×¥·¥ç¥ó¤Ë
-fPIC ¤ò»ØÄꤷ¤ÆºîÀ®¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£
°ìÈ̤μ¹ԥ⥸¥å¡¼¥ë¤Ï¡¢¤Û¤È¤ó¤É¤¬¡Ö¥·¥§¥¢¡¼¥É¡Ê¶¦Í¡Ë¥é¥¤¥Ö¥é¥ê¡×¤ò¥ê¥ó¥¯¤¹¤ë¤È¤ÎÁ°Äó¤ÇÀ¸À®¤µ¤ì¡¢¼Â¹Ô»þ¤ËɬÍפȤµ¤ì¤ë¥·¥¹¥Æ¥à¶¦Í¥é¥¤¥Ö¥é¥ê¤ÈPGI
¤Î¾ì¹ç¤Ï¡¢PGI ÍѤζ¦Í¥é¥¤¥Ö¥é¥ê¤¬¥í¡¼¥É¤µ¤ì¤ë·Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥ê¥ó¥¯Êý¼°¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢¡Ö¥ê¥ó¥¯»þ¤Ë¤ª¤±¤ëÌäÂê¡×¤Ï¡¢¤Û¤È¤ó¤ÉȯÀ¸¤·¤Þ¤»¤ó¤¬¡¢ÌÀ¼¨Åª¤Ë¥¹¥¿¥Æ¥£¥Ã¥¯(ÀÅŪ)¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤¹¤ëºÝ¤Ë̤²ò·è¤Ê¥ª¥Ö¥¸¥§¥¯¥È¡¦¥ë¡¼¥Á¥ó¤¬Â¸ºß¤¹¤ë¾ì¹ç¤äºî°ÙŪ¤Ë¤¢¤ë¥é¥¤¥Ö¥é¥ê¤òÁȤ߹þ¤ß¤¿¤¤Åù¤ÎÁàºî¤ò¤·¤¿¾ì¹ç¡¢¥ê¥ó¥¯»þ¤ÎÌäÂ꤬ȯÀ¸¤·¤Þ¤¹¡£
¡ü ¥ê¥ó¥¯»þ¤Ë¤ª¤±¤ë¥é¥¤¥Ö¥é¥ê¤ÎÁȹþ¤ß½ç½ø
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥ê¥ó¥«¤Ï¤Þ¤º¡¢¥·¥§¥¢¡¼¥É¡Ê¶¦Í¡Ë¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤·¡¢É¬ÍפȤʤë¥ë¡¼¥Á¥ó¤òÁȤ߹þ¤â¤¦¤È¤·¤Þ¤¹¡£¼¡¤Ë¡¢¥¹¥¿¥Æ¥£¥Ã¥¯(ÀÅŪ)¤Ê¥é¥¤¥Ö¥é¥ê¤ÎÃ椫¤éõ¤·½Ð¤·¡¢¼Â¹Ô¥â¥¸¥å¡¼¥ë¤ËÁȤ߹þ¤ß¤Þ¤¹¡£½¾¤Ã¤Æ¡¢°ìÈ̤Υ³¥ó¥Ñ¥¤¥ë(¥ê¥ó¥¯)¥ª¥×¥·¥ç¥ó¤Ç¤Ï¡¢¤¢¤ëÇÛθ¤ò¹Ô¤ï¤Ê¤±¤ì¤Ð¡¢¾ï¤Ë¡¢¥·¥§¥¢¡¼¥É¡Ê¶¦Í¡Ë¥é¥¤¥Ö¥é¥ê¤¬ÁȤ߹þ¤Þ¤ì¤ë¤È¸À¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ÎÅÀ¤òÍý²ò¤·¤Æ¤ª¤¯¤¬¡¢¡Ö¥ê¥ó¥¯¤¹¤ë½ç½ø¡×¤È¶¦¤Ë½ÅÍפʥݥ¤¥ó¥È¤È¤Ê¤ê¤Þ¤¹¡£
¤Á¤Ê¤ß¤Ë¡¢¼Â¹Ô¥â¥¸¥å¡¼¥ë¤ÎÃæ¤Ç¤É¤Î¤è¤¦¤Ê dynamic shared library ¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¤«¤Ï¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É (ldd) ¤Ç³Î¤«¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£°Ê²¼¤ÎÎã¤Ç¤Ï¡¢PGI
´ØÏ¢¤Î libpgc.so ¤À¤±¤Ç¤Ê¤¯¡¢¥·¥¹¥Æ¥à¤ËÈ÷¤¨¤é¤ì¤¿¥·¥§¥¢¡¼¥É¡Ê¶¦Í¡Ë¥é¥¤¥Ö¥é¥ê¤â¥ê¥ó¥¯¤µ¤ì¤ë¤Ù¤¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ç¤¢¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤¹¡£ÆäË
libpgc.so ¥Õ¥¡¥¤¥ë¤Ï¡¢PGI ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Þ¥·¥ó¾å¤Ç¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡£Î㤨¤Ð¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Ç¤³¤Î¤è¤¦¤Ê¼Â¹Ô¥â¥¸¥å¡¼¥ë¤òÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤Îlibpgc.so
¥Õ¥¡¥¤¥ë¤òͽ¤á¥³¥Ô¡¼¤·¤Æ¤ª¤¯¤³¤È¤¬É¬ÍפȤʤê¤Þ¤¹¡£
¡¡$ ldd a.out
¡¡¡¡¡¡libc.so.6 => /lib/i686/libc.so.6 (0x4002d000)
¡¡¡¡¡¡libpgc.so => /usr/pgi/linux86/5.2/lib/libpgc.so (0x4015d000)
¡¡¡¡¡¡libm.so.6 => /lib/i686/libm.so.6 (0x40172000)
¡¡¡¡¡¡/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
°ìÊý¡¢¥¹¥¿¥Æ¥£¥Ã¥¯¤Ê¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤·¤ÆºîÀ®¤µ¤ì¤¿¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ç¤Ï¡¢ldd ¥³¥Þ¥ó¥É¤Ç¤É¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤ë¤Ç¤·¤ç¤¦¤«¡©°Ê²¼¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
¡¡$ ldd a.out
¡¡¡¡¡¡not a dynamic executable
¥ê¥ó¥«¤¬°ÅÌۤǹԤ¦¥·¥¹¥Æ¥à¾å¤Î¥é¥¤¥Ö¥é¥ê¸¡º÷½ç½ø¤Ï¾åµ¤Ë½Ò¤Ù¤¿¤È¤ª¤ê¤Ç¤¹¤Î¤Ç¡¢¤³¤ì¤òºî°ÙŪ¤ËÊѹ¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢½ê˾¤È¤¹¤ë¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Á¥ó¤òÀè¤ËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£°ìÈ̤ˡ¢¥ê¥ó¥«¡Ê¥³¥Þ¥ó¥É¡Ë¤Î¥ª¥×¥·¥ç¥ó¤Î»ØÄê¤Ç¡¢¥é¥¤¥Ö¥é¥ê¤Î¸¡º÷½ç°Ì¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤È¤Ï¸À¤Ã¤Æ¤â¡¢¤³¤ÎÁàºî¤Ï´Êñ¤Ç¡¢Ã±¤Ë¥ê¥ó¥¯¤¹¤ë¥é¥¤¥Ö¥é¥ê̾¤ò¥³¥Þ¥ó¥ÉÎó¤ÎÃæ¤ÇÀè¤Ë»ØÄꤹ¤ë¤À¤±¤ÎÁàºî¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î¤³¤È¤òÍý²ò¤¹¤ì¤Ð¡¢¸å¤Ï»î¹Ôºø¸í¤Ç¡¢¥ê¥ó¥¯¥¨¥é¡¼¤¬µ¯¤¤Ê¤¤¤è¤¦¤Ë½ê˾¤È¤¹¤ë¥é¥¤¥Ö¥é¥ê¤òÁȤ߹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£Ê£¿ô¤Î¥é¥¤¥Ö¥é¥ê´Ö¤Ç¸Æ¤Ó½Ð¤·/»²¾È¤Î½ç½ø¤Î°Í¸´Ø·¸¤¬¤¢¤ë¾ì¹ç¡¢¥é¥¤¥Ö¥é¥ê̾¤ò¥³¥Þ¥ó¥ÉÎó¤Ç»ØÄꤹ¤ë½ç½ø¤Ï¡¢É¬¤º°Ê²¼¤Î¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡Ê½ç½ø¤Ï¥»¥ó¥·¥Æ¥£¥Ö¤Ç¤¹¡Ë¡£
¡¡Î㤨¤Ð¡¢¡¡¥æ¡¼¥¶¤Î¥¹¥¿¥Æ¥£¥Ã¥¯¥é¥¤¥Ö¥é¥ê libA.a ¤ÎÃæ¤Î´Ø¿ô¤¬¡¢libB.a ¤ÎÃæ¤Î´Ø¿ô¤òɬÍפȤ¹¤ë¾ì¹ç¤ÎÎã¤òµ¤·¤Þ¤¹¡£
¡¡¡¡¡¡libA.a ---> libB.a ¡Ê¶¦Í¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¤Ï¡¢ libA.so ---> libB.so)
¡¡¥ê¥ó¥«¤Î¥³¥Þ¥ó¥ÉÎó¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê½çÈ֤ǥê¥ó¥¯¸¡º÷½ç½ø¤ò»ØÄꤷ¤Þ¤¹¡£¥é¥¤¥Ö¥é¥ê(*.a) Æâ¤Î»²¾È¤Î²ò·è¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤Ëµ¤µ¤ì¤¿¤â¤Î¤ò½çÈ֤ˡ¢1²ó¸Â¤ê¤Î¸¡º÷¤ò¹Ô¤¤¤Þ¤¹¡£ÆäËÂç»ö¤Ê¤³¤È¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¾å¤ÇÀè¹Ô¤¹¤ë¥¢¡¼¥«¥¤¥Ö¡¦¥é¥¤¥Ö¥é¥ê¤ò¡¢¸å³¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¡Ê¥é¥¤¥Ö¥é¥ê¤ò´Þ¤à¡ËÆâ¤Î¿·¤·¤¤»²¾È¤Î²ò·è¤Ë»ÈÍѤ¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤³¤Î¥ê¥ó¥±¡¼¥¸¤Ë¤ª¤±¤ë°ÅÌۤηè¤Þ¤ê¤´¤È¤¬¡¢¥³¥Þ¥ó¥É¹Ô¤Î¥é¥¤¥Ö¥é¥ê̾»ØÄê¤Î½ç½ø¤Ë´Ø·¸¤·¤Þ¤¹¡£°Ê²¼¤ÎÎã¤Ç¤Ï¡¢ºÇ½é¤Ë
test.o ¤Î̤²ò·è¤Î»²¾È¤ò¥³¥Þ¥ó¥É¹Ô¤Î¼¡°Ê¹ß¤Ëµ¤µ¤ì¤¿ *.a ¤ò½çÈ֤˸¡º÷¤·¤Æ²ò·è¤¹¤ì¤ÐÌäÂê¤Ê¤¯¡¢test.o ¤ò¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ë¤Ç¤¤Þ¤¹¤¬¡¢¤³¤ì¤ÇÁ´¤ÆOK¤È¤Ï¸À¤¨¤Þ¤»¤ó¡£¼¡¤Î¥³¥Þ¥ó¥É¹Ô¤Ë½Ð¤Æ¤¯¤ë
libA.a ÆâÉô¤Î̤²ò·è»²¾È¤¬¤¢¤ë¤«¤É¤¦¤«¡¢¥ê¥ó¥«¤Ï¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£¥ê¥ó¥«¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤ÎlibA.a ¤Î±¦Â¦¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤Î¤ß¤·¤«¡¢Ì¤²ò·è»²¾È¥·¥ó¥Ü¥ë¤ò¸¡º÷¤·¤Þ¤»¤ó¡£¤â¤·¡¢¤½¤ÎÁ°¤Ë¥¢¡¼¥«¥¤¥Ö̾µ½Ò¤µ¤ì¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢Î㤨¤Ð¡¢¤³¤Î¾ì¹çlibB.a
¤¬¥³¥Þ¥ó¥É¹Ô¤ÎÁ°¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤Æ¤â¡¢¡Ö¸¡º÷¡×¼«ÂΤò¹Ô¤¤¤Þ¤»¤ó¡£¾ï¤Ë¡¢¥³¥Þ¥ó¥É¹Ô¤ò1²ó¸Â¤ê¡¢¾ï¤Ë±¦¤Ë¤¢¤ë¤â¤Î¤ò¸¡º÷¤¹¤ë¤Î¤ß¤Ç¤¹¡£
¡¡¡¡¡¡pgCC test.o -Bstatic -L{directory} -lA -lB ¡Ê -lB -lA ¤Î½çÈÖ¤Ç¤Ï libB.a ¤Î´Ø¿ô¤¬Ì¤²ò·è¤Ë¤Ê¤ê¤Þ¤¹¡Ë
¡¡¤¢¤ë¤¤¤Ï¡¢ÌÀ¼¨Åª¤Ë¥é¥¤¥Ö¥é¥ê̾¤ò»ØÄꤷ¤Þ¤¹¡£
¡¡¡¡¡¡pgCC test.o -Bstatic libA.a libB.a
¡¡
¡¡¶¦Í¥é¥¤¥Ö¥é¥ê¡ÊlibA.so¡¢libB.so¡Ë¤Î¾ì¹ç¤Ï¡¢
¡¡¡¡¡¡pgCC test.o -L{directory} -lA -lB ¤¢¤ë¤¤¤Ï¡¢pgCC test.o libA.so libB.so
¡ü ÀÅŪ¤Ë¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Î¥³¥ó¥Ñ¥¤¥ë¡¦¥ª¥×¥·¥ç¥ó
PGI ¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¢¥ê¥ó¥«¤ËÀÅŪ¥ê¥ó¥±¡¼¥¸¤ò¹Ô¤¦¤³¤È¤ò»Ø¼¨¤¹¤ë¤¿¤á¤Ë¡¢ -Bstatic ¤È¸À¤¦¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£´ðËÜŪ¤Ë¤Ï¡¢¤³¤Î»ØÄê¤Ë¤è¤Ã¤Æ¡¢¥ê¥ó¥«¤ÏÀÅŪ¥é¥¤¥Ö¥é¥ê¤òÀè¤Ë¸¡º÷¤·¤è¤¦¤È¤·¤Þ¤¹¡£Ã¢¤·¡¢-Bstatic ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¼Â¹Ô¥â¥¸¥å¡¼¥ë¤òºîÀ®¤¹¤ëºÝ¤Ë¡¢¥ê¥ó¥«¤Î¥ì¥Ù¥ë¤Ç¡¢¡Ö̤²ò·è¤Ê»²¾È¥ë¡¼¥Á¥ó¡×¤¬Â¸ºß¤·¤Æ¡¢¼Â¹Ô¥â¥¸¥å¡¼¥ë¤¬ºîÀ®¤Ç¤¤Ê¤¤¥¨¥é¡¼¤¬À¸¤¸¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢PGI ¥³¥ó¥Ñ¥¤¥é¡Êld¡¡¥ê¥ó¥«¡Ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥é¥¤¥Ö¥é¥ê¤Î¸¡º÷½ç½ø¤¬Å¬Åö¤Ç¤Ê¤¤¾ì¹ç¤ËÀ¸¤¸¤Þ¤¹¡£¤³¤ÎÂкö¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤ËÎã¤ò¼¨¤·¤Þ¤·¤¿¡£
|