LinuxÈçºÎ²éÕÒ¶¯Ì¬¿â ת+×¢
LinuxÈçºÎ²éÕÒ¶¯Ì¬¿â
http://blog.chinaunix.net/u2/60011/showart_1007920.html
1£® ¾²Ì¬¿âºÍ¶¯Ì¬¿âµÄ»ù±¾¸ÅÄî
¾²Ì¬¿â£¬ÊÇÔÚ¿ÉÖ´ÐгÌÐòÁ¬½Óʱ¾ÍÒѾ¼ÓÈëµ½Ö´ÐÐÂëÖУ¬ÔÚÎïÀíÉϳÉΪִÐгÌÐòµÄÒ»²¿·Ö£»Ê¹Óþ²Ì¬¿â±àÒëµÄ³ÌÐòÔËÐÐʱÎÞÐè¸Ã¿âÎļþÖ§³Ö£¬ÄÄÀï¶¼¿ÉÒÔÓ㬵«ÊÇÉú³ÉµÄ¿ÉÖ´ÐÐÎļþ½Ï´ó¡£
¶¯Ì¬¿â£¬ÊÇÔÚ¿ÉÖ´ÐгÌÐòÆô¶¯Ê±¼ÓÔØµ½Ö´ÐгÌÐòÖУ¬¿ÉÒÔ±»¶à¸ö¿ÉÖ´ÐгÌÐò¹²ÏíʹÓᣡ¾¼ÓÔØÆ÷¼ÓÔØÒ»¸öexecutableÎļþʱ£¬ÐèÒª½âÎö£¬¿´ÊÇ·ñÓÐlibÐèÒª¼ÓÔØ¡£Èç¹ûÐèÒª¼ÓÔØ£¬¾ÍÔÚÎļþµÄij´¦ÕÒµ½lib·¾¶£¬ÓÅÏÈÔÚ´Ë·¾¶ÏÂËÑË÷¡£¼ÓÔØlibºó£¬ÏòOS×¢²á¿âÃûÐÅÏ¢¡£ÆäËûexecutableÎļþÔËÐÐʱÈç¹ûÒ²ÐèÒª£¬¾ÍÏÈÏòOS×Éѯ£¬ÊÇ·ñÒѾ¼ÓÔØ£¬Î»ÖÃÔÚÄÄÀʹÓö¯Ì¬¿â±àÒëÉú³ÉµÄ³ÌÐòÏà¶Ô½ÏС£¬µ«ÔËÐÐʱÐèÒª¿âÎļþÖ§³Ö£¬Èç¹û»úÆ÷ÀïûÓÐÕâЩ¿âÎļþ¾Í²»ÄÜÔËÐС£
2£® ÈçºÎʹÓö¯Ì¬¿â
ÈçºÎ³ÌÐòÔÚÁ¬½ÓʱʹÓÃÁ˹²Ïí¿â£¬¾Í±ØÐëÔÚÔËÐеÄʱºòÄܹ»ÕÒµ½¹²Ïí¿âµÄλÖá£linuxµÄ¿ÉÖ´ÐгÌÐòÔÚÖ´ÐеÄʱºòĬÈÏÊÇÏÈËÑË÷/libºÍ/usr/libÕâÁ½¸öĿ¼£¬È»ºó°´ÕÕ/etc/ld.so.confÀïÃæµÄÅäÖÃËÑË÷¾ø¶Ô·¾¶¡£Í¬Ê±£¬LinuxÒ²ÌṩÁË»·¾³±äÁ¿LD_LIBRARY_PATH¹©Óû§Ñ¡ÔñʹÓã¬Óû§¿ÉÒÔͨ¹ýÉ趨ËüÀ´²éÕÒ³ýĬÈÏ·¾¶Ö®ÍâµÄÆäËû·¾¶£¬È磺LD_LIBRARY_PATH =/work/lib:$(LD_LIBRARY_PATH)£¬²¢ÇÒLD_LIBRARY_PATHÓÅÏÈÓÚϵͳĬÈÏ·¾¶Ö®Ç°²éÕÒ£¨Ïêϸ²Î¿¼¡¶Ê¹ÓÃLD_LIBRARY_PATH¡·£©¡£
²»¹ýÓÉÓÚLD_LIBRARY_PATHµÄÉ趨×÷ÓÃÊÇÈ«¾ÖµÄ£¬¹ý¶àµÄʹÓÿÉÄÜ»áÓ°Ïìµ½ÆäËûÓ¦ÓóÌÐòµÄÔËÐУ¬ËùÒÔ¶àÓÃÔÚµ÷ÊÔ¡£LD_LIBRARY_PATHµÄȱÏݺÍʹÓÃ×¼Ôò£¬¿ÉÒԲο¼¡¶Why LD_LIBRARY_PATH is bad¡· £¬Í¨³£Çé¿öÏÂÍÆ¼ö»¹ÊÇʹÓÃgccµÄ-R»ò-rpathÑ¡ÏîÀ´ÔÚ±àÒëʱ¾ÍÖ¸¶¨¿âµÄ²éÕÒ·¾¶£¬²¢ÇҸÿâµÄ·¾¶ÐÅÏ¢±£´æÔÚ¿ÉÖ´ÐÐÎļþÖУ¬ÔËÐÐʱËü»áÖ±½Óµ½¸Ã·¾¶²éÕҿ⣬±ÜÃâÁËʹÓÃLD_LIBRARY_PATH»·¾³±äÁ¿²éÕÒ¡£
3£®¿âµÄÁ´½Óʱ·¾¶ºÍÔËÐÐʱ·¾¶
ÏÖ´úÁ¬½ÓÆ÷ÔÚ´¦Àí¶¯Ì¬¿âʱ½«Á´½Óʱ·¾¶£¨Link-time path£©ºÍÔËÐÐʱ·¾¶£¨Run-time path£©·Ö¿ª,Óû§¿ÉÒÔͨ¹ý-LÖ¸¶¨Á¬½Óʱ¿âµÄ·¾¶£¬Í¨¹ý-R£¨»ò-rpath£©Ö¸¶¨³ÌÐòÔËÐÐʱ¿âµÄ·¾¶£¬´ó´óÌá¸ßÁË¿âÓ¦ÓõÄÁé»îÐÔ¡£±ÈÈçÎÒÃÇ×öǶÈëÊ½ÒÆÖ²Ê±#arm-linux-gcc $(CFLAGS) –o target –L/work/lib/zlib/ -llibz-1.2.3 (work/lib/zlibÏÂÊǽ»²æ±àÒëºÃµÄzlib¿â)£¬½«target±àÒëºÃºóÎÒÃÇÖ»Òª°Ñzlib¿â¿½±´µ½¿ª·¢°åµÄϵͳĬÈÏ·¾¶Ï¼´¿É¡£»òÕßͨ¹ý-rpath£¨»ò-R £©¡¢LD_LIBRARY_P
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
ÀûÓÃsocket±àдwindowsºÍlinuxͨѶ³ÌÐò
socket±à³Ì´ó¼Ò¶¼ºÜÊìϤ£¬ÎÒÔÚÕâÀï¾Í²»ÔÙÂÞàÂÁË¡£Ö±½ÓÇÐÈëÕýÌâ¡£¸Ã³ÌÐò·ÖÁ½²¿·Ö£¬server¶ËºÍclient¶Ë£¨Ë¶¼ÖªµÀ£©¡£ÆäÖÐserver¶Ë²ÉÓÃwindowsƽ̨£¬ÄÇlinuxƽ̨µ±È»ÊÇclient¶ËÁË¡£
ÕâÀïÊÇserver¶Ë³ÌÐò£º
/**********************************/
/* it work ......
4)º¯Êý
Èç¹ûÄúдÁËһЩÉÔ΢¸´ÔÓһЩµÄ³ÌÐò£¬Äú¾Í»á·¢ÏÖÔÚ³ÌÐòÖпÉÄÜÔÚ¼¸¸öµØ·½Ê¹ÓÃÁËÏàͬµÄ´úÂ룬²¢ÇÒÄúÒ²»á·¢ÏÖ£¬Èç¹ûÎÒÃÇʹÓÃÁ˺¯Êý£¬»á·½±ãºÜ¶à¡£Ò»¸öº¯ÊýÊÇÕâ¸öÑù×ӵģº
functionname()
{
# inside the body $1 is the first argument given to the function
# $2 the second ...
body
}
ÄúÐèÒªÔÚÿ¸ö³ÌÐ ......
/*
* linux/kernel/floppy.c
*
* (C) 1991 Linus Torvalds
*/
/*
* 02.12.91 - Changed to static variables to indicate need for reset
* and recalibrate. This makes some things easier (output_byte reset
* checking etc), and means less i ......