Linux .o a .so .la .loµÄÇø±ð¼°libtoolÏà¹Ø½éÉÜ
ÔÎĵØÖ·£ºhttp://www.eetop.cn/blog/html/40/202640-8862.html
o: ±àÒëµÄÄ¿±êÎļþ
a: ¾²Ì¬¿â£¬Æäʵ¾ÍÊǰÑÈô¸ÉoÎļþ´òÁ˸ö°ü
so: ¶¯Ì¬Á´½Ó¿â£¨¹²Ïí¿â£©
lo: ʹÓÃlibtool±àÒë³öµÄÄ¿±êÎļþ£¬Æäʵ¾ÍÊÇÔÚoÎļþÖÐÌí¼ÓÁËһЩÐÅÏ¢
la: ʹÓÃlibtool±àÒë³öµÄ¿âÎļþ£¬ÆäʵÊǸöÎı¾Îļþ£¬¼Ç¼ͬÃû¶¯Ì¬¿âºÍ¾²Ì¬¿âµÄÏà¹ØÐÅÏ¢
1 libtoolµÄ¹¤×÷ÔÀí
libtool
ÊÇÒ»¸öͨÓÿâÖ§³Ö½Å±¾£¬½«Ê¹Óö¯Ì¬¿âµÄ¸´ÔÓÐÔÒþ²ØÔÚͳһ¡¢¿ÉÒÆÖ²µÄ½Ó¿ÚÖУ»Ê¹ÓÃlibtoolµÄ±ê×¼·½·¨£¬¿ÉÒÔÔÚ²»Í¬Æ½Ì¨ÉÏ´´½¨²¢µ÷Óö¯Ì¬¿â¡£¿ÉÒÔÈÏΪlibtoolÊÇgccµÄÒ»¸ö³éÏ󣬯ä°ü×°ÁËgcc£¨»òÕ߯äËûµÄ±àÒëÆ÷£©£¬Óû§ÎÞÐèÖªµÀϸ½Ú£¬Ö»Òª¸æËßlibtoolÐèÒª±àÒëÄÄЩ¿â¼´¿É£¬libtool½«´¦Àí¿âµÄÒÀÀµµÈϸ½Ú¡£libtoolÖ»Óëºó׺ÃûΪlo¡¢laΪµÄlibtoolÎļþ´ò½»µÀ¡£
libtoolÖ÷ÒªµÄÒ»¸ö×÷ÓÃÊÇÔÚ±àÒë´óÐÍÈí¼þµÄ¹ý³ÌÖнâ¾öÁË¿âµÄÒÀÀµÎÊÌ⣻½«·±ÖصĿâÒÀÀµ¹ØÏµµÄά»¤¹¤×÷³Ðµ£ÏÂÀ´£¬´Ó¶øÊÍ·ÅÁ˳ÌÐòÔ±µÄÈËÁ¦×ÊÔ´¡£libtoolÌṩͳһµÄ½Ó¿Ú£¬Òþ²ØÁ˲»Í¬Æ½Ì¨¼ä¿âµÄÃû³ÆµÄ²îÒìµÈϸ½Ú£¬Éú³ÉÒ»¸ö³éÏóµÄºó׺ÃûΪla¸ß²ã¿âlibxx.la£¨ÆäʵÊǸöÎı¾Îļþ£©£¬²¢½«¸Ã¿â¶ÔÆäËü¿âµÄÒÀÀµ¹ØÏµ£¬¶¼Ð´ÔÚ¸ÃlaµÄÎļþÖС£¸ÃÎļþÖеÄdependency_libs¼Ç¼¸Ã¿âÒÀÀµµÄËùÓп⣨ÆäÖÐÓÐЩÊÇÒÔ.laÎļþµÄÐÎʽ¼ÓÈëµÄ£©£»libdirÔòÖ¸³öÁË¿âµÄ°²×°Î»Öã»library_names¼Ç¼Á˹²Ïí¿âµÄÃû×Ö£»old_library¼Ç¼Á˾²Ì¬¿âµÄÃû×Ö¡£
µ±±àÒë¹ý³Ìµ½link½×¶ÎµÄʱºò£¬Èç¹ûÓÐÏÂÃæµÄÃüÁ
$libtool --mode=link gcc -o myprog -rpath /usr/lib –L/usr/lib –la
libtool
»áµ½/usr/lib·¾¶ÏÂȥѰÕÒliba.la£¬È»ºó´ÓÖжÁȡʵ¼ÊµÄ¹²Ïí¿âµÄÃû×Ö£¨library_namesÖмǼÁ˸ÃÃû×Ö£¬±ÈÈçliba.so£©ºÍ
·¾¶(lib_dirÖмǼÁË£¬±ÈÈçlibdir=’/usr/lib’)£¬·µ»ØÖîÈç/usr/lib/liba.soµÄ²ÎÊý¸ø¼¤·¢³öµÄgccÃüÁîÐС£
Èç¹ûliba.soÒÀÀµÓÚ¿â/usr/lib/libb.so£¬ÔòÔÚliba.laÖн«»áÓÐdependency_libs=’-L/usr/lib
-lb’»òÕßdependency_libs=’/usr/lib/libb.la’µÄÐУ¬Èç¹ûÊÇǰÕߣ¬Æä½«Ö±½Ó°Ñ“-L/usr/lib
–lb”µ±×÷²ÎÊý´«¸øgccÃüÁîÐУ»Èç¹ûÊǺóÕߣ¬libtool½«´Ó/usr/lib/libb.laÖжÁȡʵ¼ÊµÄlibb.soµÄ¿âÃû³ÆºÍ·¾¶£¬È»ºó×é
ºÏ³É²ÎÊý“/usr/lib/libb.so”´«µÝ¸øgccÃüÁîÐС£
µ±ÒªÉú³ÉµÄÎļþÊÇÖîÈçlibmylib.laµÄʱºò£¬±ÈÈ磺
;B*} c&jP:O0
e
i
Ph CUO6c0
$libtool --mode=link gcc -o libmylib.la -rpath /usr/li
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
ϵͳ
# uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
# hostname # ²é¿´¼ÆËã»úÃû
# lspci -tv # ÁгöËùÓÐPCIÉ豸
# lsusb -tv # ÁгöËùÓÐUSBÉ豸
# lsmod # ......
RHEL5ÔÚ°²×°VM-wareTools¹ý³ÌÖгöÏÖÈçÏ´íÎó£º
What is the
location of the directory of C header files that match your running kernel?
[/usr/src/linux/include] The directory of kernel headers (version
2.6.18-8.el5xen) does not match
´Ë´íÎóÖ÷ÒªÊÇÏëÕÒLinuxÄں˵İüº¬Í·ÎļþÕÒ²»µ½¡£Òª½â¾ö´ËÎÊÌâÐèÒª° ......
˫ϵͳ°²×°Ê±£¬Linux´ÓÓ²ÅÌÆô¶¯£º
°²×°windows¾Í²»ÔÙ½²ÁË¡£
ÏÂÔØLinuxϵͳ¾µÏñ£¬ÎÒÏÂÔØµÄÊÇCentOS5.3¡£½«Linux¾µÏñ½âѹµ½Ò»¸öfat32·ÖÇøÄ¿Â¼£¨ÎÒµÄÊÇFÅÌ£©¡£
²¢½«¾µÏñÖÐisolinuxĿ¼ÏµÄvmlinuxzºÍinitrd.imgÁ½¸öÎļþcopyµ½FÅÌ£¨ÎÒµÄÊÇFÅÌ£©¡£ÏÂÔØwingrub£¬Ë«»÷°²×°¡£°²×°ºó´ò¿ªwingrub³öÀ´Ò»½çÃæchoose driverÈÃÄãÑ¡ÔñÅÌ ......
ÎÒÕâÀï˵µÄioctlº¯ÊýÊÇÔÚÇý¶¯³ÌÐòÀïµÄ£¬ÒòΪÎÒ²»ÖªµÀ»¹ÓÐûÓбðµÄ³¡ºÏÓõ½ÁËioctl£¬
ËùÒԾ͹涨ÁËÎÒÃÇÌÖÂ۵ķ¶Î§¡£ÎªÊ²Ã´ÒªÐ´ÆªÎÄÕÂÄØ£¬ÊÇÒòΪÎÒǰһÕó×Ó±»ioctl¸ø¸ã»ì
ÁË£¬Õ⼸Ìì²ÅŪÃ÷°×Ëü£¬ÓÚÊÇÔÚÕâÀïÇåÀíÒ»ÏÂÍ·ÄÔ¡£
......