¿¡·¯ ¾øÀÌ xmkmf¿Í make¿¡ ¼º°øÇß´Ù¸é, ´ÙÀ½ Àý·Î ³Ñ¾î°¡µµ ÁÁ´Ù. ÇÏÁö¸¸ "½ÇÁ¦ »ýÈ°"¿¡¼´Â ù¹ø¿¡ Á¦´ë·Î µÇ´Â ÀÏÀº °ÅÀÇ ¾ø´Ù. À̶§°¡ ´ç½ÅÀÇ ÀçÄ¡¸¦ ½ÃÇèÇÒ ¶§´Ù.
Ling error: -lX11: No such file or directory
ÀÌ °æ¿ì Imake ÆÄÀÏÀÌ Á¦´ë·Î ¼³Á¤µÇÁö ¾Ê¾ÒÀ» °¡´É¼ºÀÌ Å©´Ù.
MakefileÀÇ Ã¹ºÎºÐ¿¡ ÀÖ´Â ´ÙÀ½°ú °°Àº ÁÙµéÀ» È®ÀÎÇØ º¸¶ó.
LIB= -L/usr/X11/lib
INCLUDE= -I/usr/X11/include/X11
LIBS= -lX11 -lc -lm
-L
°ú -I
½ºÀ§Ä¡´Â °¢°¢ ÄÄÆÄÀÏ·¯¿Í ¸µÄ¿¿¡°Ô
¶óÀ̺귯¸®¿Í include ÆÄÀϵéÀ» ¾îµð¿¡¼ ã¾Æ¾ß ÇÏ´ÂÁö
¾Ë·ÁÁÖ´Â °ÍÀÌ´Ù.
ÀÌ ¿¹¿¡¼´Â X11 ¶óÀ̺귯¸®´Â /usr/X11/lib
µð·ºÅ͸®¿¡,
X11ÀÇ include ÆÄÀϵéÀº /usr/X11/include/X11
µð·ºÅ͸®¿¡
ÀÖ¾î¾ß ÇÑ´Ù. ´ç½ÅÀÇ ÄÄÇ»ÅÍ´Â ÀÌ¿Í ´Ù¸£´Ù¸é, Makefile¿¡ ÇÊ¿äÇÑ ¼öÁ¤À»
°¡ÇÏ°í, make¸¦ ´Ù½Ã ÇØ º¸µµ·Ï Ç϶ó.
/tmp/cca011551.o(.text+0x11): undefined reference to `cos'
ÀÌ ¹®Á¦¿¡ ´ëÇÑ ÇعýÀº Makefile
³»ÀÇ LIBÀ̳ª LIBS
ºÎºÐ(À§ÀÇ ¿¹¸¦ º¸¶ó)¿¡ -lm À» ´õÇÔÀ¸·Î½á ¼öÇÐ ¶óÀ̺귯¸®
¸¦
¸í½ÃÀûÀ¸·Î ¸µÅ©ÇÏ´Â °ÍÀÌ´Ù.
make -DUseInstalled -I/usr/X386/lib/X11/config
ÀÌ°ÍÀº xmkmf¿Í µ¿µîÇÑ Àú¼öÁØ ¸í·É(bare bone)ÀÇ ÀÏÁ¾ÀÌ´Ù.
# ldconfig ´Â °øÀ¯ ¶óÀ̺귯¸®ÀÇ ½Éº¼¸¯ ¸µÅ©¸¦ °»½ÅÇÑ´Ù.
ÀÌ°ÍÀº ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´Ò ¼öµµ ÀÖ´Ù.
Makefile
Àº ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ÀÖ´Â ¶óÀ̺귯¸®¿¡ ´ëÇØ ÀνĵÇÁö
¾ÊÀº(unrecognized) º°¸í(alias)¸¦ »ç¿ëÇϱ⵵ ÇÑ´Ù. ¿¹¸¦ µé¾î, ÄÄÆÄÀÏÀº
libX11.so.6
À» ¿ä±¸ÇÏÁö¸¸ /usr/X11R6/lib
¿¡´Â ±×·± ÆÄÀÏÀ̳ª
¸µÅ©°¡ ¾øÀ» ¼ö ÀÖ´Ù. ÇÏÁö¸¸ libX11.so.6.1
Àº ÀÖ´Ù.
ÇØ°áÃ¥Àº root·Î¼
ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6
À» ÇÏ´Â °ÍÀÌ´Ù. ÀÌ ´ÙÀ½¿¡´Â ldconfig¸¦ ½ÇÇà½ÃÄÑ¾ß ÇÒ ¼öµµ ÀÖ´Ù.
R5 ¶óÀ̺귯¸®
ÀÇ À̸§Àº
libX11.so.3.1.0
, libXaw.so.3.1.0
, libXt.so.3.1.0
ÀÌ´Ù. º¸Åë libX11.so.3 -> libX11.so.3.1.0°ú °°Àº ¸µÅ©°¡ ÇÊ¿äÇÏ´Ù.
¼ÒÇÁÆ®¿þ¾î°¡ libX11.so -> libX11.so.3.1.0 ÇüÅÂÀÇ ¸µÅ©¸¦
ÇÊ¿ä·Î ÇÒ ¼öµµ ÀÖ´Ù. ¹°·Ð "ºüÁ®ÀÖ´ø" ¸µÅ©¸¦ ¸¸µé·Á¸é, root·Î¼
ln -s libX11.so.3.1.0 libX11.so ¸í·ÉÀ» ¾´´Ù.
libc
¸¦ ¿ä±¸Çϱâ·Î ¾Ç¸íÀÌ ³ô¾Ò´Ù.
±×º¸´Ù µÚ¿¡ ³ª¿Â StarOffice 5.0µµ »õ·Î¿î glibc 2.1
¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇÏ°í ³ª¸é ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù.
´ÙÇàÈ÷µµ, ±× ´ÙÀ½¿¡ ³ª¿Â StarOffice 5.1Àº ÀÌ ¹®Á¦¸¦ ÇØ°áÇß´Ù.
¿À·¡µÈ ¹öÁ¯ÀÇ StarOffice¸¦ ½ÇÇà½ÃÅ°·Á¸é, root·Î¼
¶óÀ̺귯¸®µéÀ» ÀûÀýÇÑ µð·ºÅ͸®¿¡ º¹»çÇÏ°í, ¿À·¡µÈ ¶óÀ̺귯¸®¸¦ »èÁ¦ÇÑ ´ÙÀ½
½Éº¼¸¯ ¸µÅ©¸¦ ´Ù½Ã ¼³Á¤ÇØ¾ß ÇÑ´Ù. (ÀÌ¿¡ ´ëÇÑ Á¤º¸°¡
´õ ÇÊ¿äÇϸé ÃֽŠ¹öÁ¯ÀÇ StarOffice miniHOWTO
¸¦ º¸¶ó.)
ÁÖÀÇ: ½Ç¼öÇÏ¸é ´ç½ÅÀÇ ½Ã½ºÅÛÀÌ ÀÛµ¿ÇÏÁö ¾Êµµ·Ï ÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î,
ÀÌ °úÁ¤¿¡¼´Â ±Øµµ·Î ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. °»½ÅµÈ ÃֽŠ¶óÀ̺귯¸®´Â ´ë°³ Sunsite¿¡¼
ãÀ» ¼ö ÀÖ´Ù.
ÃֽŠ¶óÀ̺귯¸®´Â ´ë°³
Sunsite¿¡¼ ãÀ» ¼ö ÀÖ´Ù.
No such file or directory
¶ó´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ ³¾ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì¿¡´Â ÆÄÀÏÀÌ ½ÇÇà °¡´ÉÇÏ°Ô
µÇ¾î ÀÖ´ÂÁö Çã°¡±ÇÀ» È®ÀÎÇÏ°í, ½ºÅ©¸³Æ®°¡ È£ÃâÇÏ´Â ½©À̳ª ÇÁ·Î±×·¥ÀÌ ÁöÁ¤µÈ
À§Ä¡¿¡ ÀÖ´ÂÁö ÆÄÀÏÀÇ Çì´õ ºÎºÐÀ» È®ÀÎÇϵµ·Ï ÇÑ´Ù.
¿¹¸¦ µé¾î ½ºÅ©¸³Æ®°¡ ¾Æ·¡¿Í °°ÀÌ ½ÃÀÛÇÑ´Ù°í ÇÏÀÚ.
#!/usr/local/bin/perl
PerlÀÌ »ç½ÇÀº /usr/local/bin
ÀÌ ¾Æ´Ï¶ó /usr/bin
µð·ºÅ͸®¿¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é, ÀÌ ½ºÅ©¸³Æ®´Â ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.
ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ´Â µ¥¿¡´Â µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.
½ºÅ©¸³Æ® ÆÄÀÏÀÇ Çì´õ¸¦ #!/usr/bin/perl
·Î ¹Ù²Ù°Å³ª,
ln -s /usr/bin/perl /usr/local/bin/perl
·Î Á¤È®ÇÑ µð·ºÅ͸®·ÎÀÇ ½Éº¼¸¯ ¸µÅ©¸¦ Ãß°¡ÇØ ÁÖ¸é µÈ´Ù.
ÄÄÆÄÀÏÀ» À§ÇØ ´ç½Å ½Ã½ºÅÛ¿¡ ¾ø´Â ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÏ´Ù¸é, ±× ÆÐÅ°Áö´Â ¸µÅ©
¿¡·¯(undefined reference error
)¸¦ ÀÏÀ¸Å³ °ÍÀÌ´Ù. ±×·± ¶óÀ̺귯¸®´Â
ºñ½Ñ °ÍÀ̰ųª, ´Ù¸¥ ¾î¶² ÀÌÀ¯·Î ã±â ¾î·Á¿î °ÍÀÏ ¼ö ÀÖ´Ù. ±×·± °æ¿ì¿¡´Â
Á¤ÀûÀ¸·Î ¸µÅ©µÈ ¹ÙÀ̳ʸ®¸¦ ÆÐÅ°Áö Á¦ÀÛÀÚ³ª ¸®´ª½º »ç¿ëÀÚ ±×·ì¿¡°Ô¼
±¸ÇÏ´Â °ÍÀÌ °¡Àå ½¬¿î ÇØ°áÃ¥ÀÌ´Ù.
lib 5
¿¡¼ libc 6 /glibc 2
¶óÀ̺귯¸®·Î ¹Ù²î¾ú´Ù. ¿¾³¯ ¶óÀ̺귯¸®¿Í ÇÔ²² ÀÛµ¿Çϵµ·Ï ¹Ì¸® ÄÄÆÄÀϵÈ
¹ÙÀ̳ʸ®¶ó¸é ´ç½ÅÀÌ ¶óÀ̺귯¸®¸¦ ¾÷±×·¹À̵åÇÒ °æ¿ì ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ´Ù.
ÇعýÀº ÇÁ·Î±×·¥À» ¼Ò½º¿¡¼ºÎÅÍ ´Ù½Ã ÄÄÆÄÀÏÇϵçÁö, ¹Ì¸® ÄÄÆÄÀÏµÈ »õ·Î¿î
¹ÙÀ̳ʸ®¸¦ ¾ò´Â °ÍÀÌ´Ù. Ȥ½Ã ´ç½ÅÀÌ ½Ã½ºÅÛÀ» libc 6
À¸·Î ¾÷±×·¹À̵åÇÏ´Â
ÁßÀÌ°í ÀÌ·± ¹®Á¦¸¦ °æÇèÇß´Ù¸é Eric GreenÀÇ Glibc 2 HOWTO¸¦ Âü°íÇϵµ·Ï
Ç϶ó.
glibc
¹öÁ¯µé »çÀÌ¿¡´Â ¾à°£ÀÇ È£È¯µÇÁö ¾Ê´Â Á¡ÀÌ ÀÖ´Ù´Â °Í¿¡ ÁÖÀÇÇ϶ó.
ÀÌ ¶§¹®¿¡ glibc 2.1
¿¡¼ ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®´Â glibc 2.0
°ú´Â
ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù°Å³ª ±× ¹Ý´ëÀÇ °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ´Ù.
Makefile
¾ÈÀÇ ÄÄÆÄÀÏ ¿É¼Ç¿¡¼ -ansi ¿É¼ÇÀ» Á¦°ÅÇÒ
ÇÊ¿ä°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù. ÀÌ·¸°Ô Çϸé gcc°¡ °®°í ÀÖ´Â ANSI ÀÌ¿ÜÀÇ Æ¯Â¡µéÀ»
È°¼ºÈ½ÃÅ°¸ç, ÀÌ·± Ư¡µéÀ» ¿ä±¸ÇÏ´Â ÆÐÅ°ÁöµéÀ» ÄÄÆÄÀÏÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
(ÀÌ »ç½ÇÀ» ÁöÀûÇØ ÁØ Sebastien Blondeel¿¡°Ô °¨»çÇÑ´Ù.)
ÁÖÀÇ: root·ÎÀÇ setuid¸¦ °¡Áø ÇÁ·Î±×·¥Àº ½Ã½ºÅÛ¿¡ º¸¾È »óÀÇ À§Çè ¿äÀÎÀÌ µÉ ¼ö ÀÖ´Ù. ÀÌ·± ÇÁ·Î±×·¥Àº rootÀÇ ±ÇÇÑÀ» °®°í ½ÇÇàµÇ¸ç µû¶ó¼ ½É°¢ÇÑ ¼Õ»óÀ» ³¢Ä¥ ÀáÀç·ÂÀ» °®°í ÀÖ´Ù. µû¶ó¼ setuid ºñÆ®¸¦ ÁÖ±â Àü¿¡ ÇÁ·Î±×·¥ÀÌ ¹«¾ùÀ» ÇÏ´ÂÁö, °¡´ÉÇÏ´Ù¸é ¼Ò½º¸¦ »ìÆ캽À¸·Î½á, È®ÀÎÇϵµ·Ï Ç϶ó.
´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ °¡Àå ÁÁÀº ÄÄÆÄÀÏ ¿É¼ÇµéÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇϱâ À§Çؼ
Makefile
À» µé¿©´Ùº¸°í ½ÍÀ» ¼öµµ ÀÖ´Ù.
¿¹¸¦ µé¾î -O2 ¿É¼ÇÀ» ÁÖ¸é ÃÖ°í ¼öÁØÀÇ ÃÖÀûȸ¦ ¼±ÅÃÇÏ°Ô µÇ°í,
-fomit-frame-pointer ¿É¼ÇÀº
(µð¹ö±ëÀº ºÒ°¡´ÉÇÏ°Ô µÇÁö¸¸) ¹ÙÀ̳ʸ®¸¦ ´õ ÀÛ°Ô ¸¸µé¾î ÁØ´Ù.
ÀÚ½ÅÀÌ ¹«¾ùÀ» ÇÏ°í ÀÖ´ÂÁö ¸ð¸¥´Ù¸é ÀÌ·± °ÍµéÀ» °Çµå¸®Áö ¾Êµµ·Ï Ç϶ó.
±×¸®°í ¾î¶² °æ¿ì¿¡µç ½ÃÇè»ï¾Æ ±×³É ÄÄÆÄÀÏÇؼ Á¦´ë·Î µ¹¾Æ°¡´Â °ÍÀ» È®ÀÎÇÑ ´ÙÀ½¿¡
Çϵµ·Ï Ç϶ó.
³» °æÇè¿¡ ÀÇÇϸé, ÀÀ¿ë ÇÁ·Î±×·¥ °¡¿îµ¥ ±×´ë·Î ¹®Á¦¾øÀÌ ÄÄÆÄÀϵǴ °ÍÀº ¾à
25% Á¤µµ¿´´Ù. 50% ³²ÁþÀº °£´ÜÇÏ°Ç ²ûÂïÇÒ Á¤µµ°Ç ³ë·ÂÇϸé ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù.
Áï »ó´ç¼öÀÇ ÆÐÅ°ÁöµéÀº ¾Æ¹«¸® Çصµ ÄÄÆÄÀÏÇÒ ¼ö°¡ ¾ø´Ù´Â ¶æÀÌ´Ù.
±×·¸´Ù°í Çصµ, ÀÌ ÆÐÅ°ÁöµéÀÇ ÀÎÅÚ ELF
¹× a.out
¹ÙÀ̳ʸ®¸¦
Sunsite³ª
TSX-11 archive »çÀÌÆ®¿¡¼ ãÀ» °¡´É¼ºµµ
ÀÖ´Ù.
·¹µå ÇÞ°ú
µ¥ºñ¾Èµµ ÈçÈ÷ ¾²ÀÌ´Â ¸®´ª½º
¼ÒÇÁÆ®¿þ¾îÀÇ ´ëºÎºÐÀÌ ¹Ì¸® ÆÐÅ°ÁöÈµÈ ¹ÙÀ̳ʸ®·Î ÀúÀåµÇ¾î ÀÖ´Ù.
ȤÀº ¼ÒÇÁÆ®¿þ¾îÀÇ Á¦ÀÛÀÚ°¡ ´ç½ÅÀÇ Æ¯º°ÇÑ ÃëÇâÀÇ ÄÄÇ»Å͸¦ À§ÇØ ÄÄÆÄÀϵÈ
¹ÙÀ̳ʸ®¸¦ Á¦°øÇØ ÁÙ ¼öµµ ÀÖ´Ù.
¹Ì¸® ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®¸¦ ¾ò¾ú´Ù¸é, ´ç½ÅÀÇ ½Ã½ºÅÛ°úÀÇ È£È¯¼ºÀ» È®ÀÎÇϱâ À§ÇØ
´ÙÀ½ »çÇ×µéÀ» Á¡°ËÇØ¾ß ÇÑ´Ù.
¹ÙÀ̳ʸ®°¡ ´ç½ÅÀÇ Çϵå¿þ¾î(¿¹¸¦ µé¾î ÀÎÅÚ x86)¿¡¼ ÀÛµ¿ÇØ¾ß ÇÑ´Ù.
¹ÙÀ̳ʸ®°¡ ´ç½ÅÀÇ Ä¿³Î°ú ȣȯµÇ´Â °ÍÀ̾î¾ß ÇÑ´Ù.(a.out À̳ª elf)
´ç½ÅÀÇ ¶óÀ̺귯¸®°¡ ÃÖ½ÅÀÇ °ÍÀ̾î¾ß ÇÑ´Ù.
´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ÀûÀýÇÑ ¼³Ä¡ À¯Æ¿¸®Æ¼(rpmÀ̳ª deb)°¡ ÀÖ¾î¾ß ÇÑ´Ù.
¸¸¾à ¸ðµç ½Ãµµ°¡ ½ÇÆÐÇÑ´Ù¸é, comp.os.linux.x³ª comp.os.linux.development °°Àº ÀûÀýÇÑ ´º½º±×·ì¿¡¼ µµ¿òÀ» ãÀ» ¼ö ÀÖ´Ù.
Ȥ½Ã ¸ðµç ³ë·ÂÀÌ ¼öÆ÷·Î µ¹¾Æ°¬´Ù°í ÇÏ´õ¶óµµ, ÃÖ¼ÒÇÑ ´ç½ÅÀº ÃÖ¼±À» ´ÙÇßÀ¸¸ç ±× °úÁ¤¿¡¼ ¸¹Àº °ÍÀ» ¹è¿üÀ» Å×´Ï ³Ê¹« ³«½ÉÇÒ ÇÊ¿ä´Â ¾ø´Ù.