LinuxÏÂCÓïÑÔ±à³Ì»ù´¡(Makefile)
LinuxÏÂCÓïÑÔ±à³Ì»ù´¡(Makefile)
2005-01-18 10:28:23 À´×Ô£ºÈüµÏÍø
¼ÙÉèÎÒÃÇÓÐÏÂÃæÕâÑùµÄÒ»¸ö³ÌÐò£¬Ô´´úÂëÈçÏ£º
/* main.c */
#include "mytool1.h"
#include "mytool2.h"
int main(int argc£¬char **argv)
{
mytool1_print("hello")£»
mytool2_print("hello")£»
}
/* mytool1.h */
#ifndef _MYTOOL_1_H
#define _MYTOOL_1_H
void mytool1_print(char *print_str)£»
#endif
/* mytool1.c */
#include "mytool1.h"
void mytool1_print(char *print_str)
{
printf("This is mytool1 print %s "£¬print_str)£»
}
/* mytool2.h */
#ifndef _MYTOOL_2_H
#define _MYTOOL_2_H
void mytool2_print(char *print_str)£»
#endif
/* mytool2.c */
#include "mytool2.h"
void mytool2_print(char *print_str)
{
printf("This is mytool2 print %s "£¬print_str)£»
}
µ±È»ÓÉÓÚÕâ¸ö³ÌÐòºÜ¶Ì£¬ÎÒÃÇ¿ÉÒÔÕâÑùÀ´±àÒë:
gcc -c main.c
gcc -c mytool1.c
gcc -c mytool2.c
gcc -o main main.o mytool1.o mytool2.o
Õâ
ÑùµÄ»°ÎÒÃÇÒ²¿ÉÒÔ²úÉúmain³ÌÐò£¬¶øÇÒÒ²²»ÊǺÜÂé·³¡£µ«ÊÇÈç¹ûÎÒÃÇ¿¼ÂÇÒ»ÏÂÈç¹ûÓÐÒ»ÌìÎÒÃÇÐÞ¸ÄÁËÆäÖеÄÒ»¸öÎļþ(±ÈÈç˵mytool1.c)ÄÇôÎÒÃÇÄÑ
µÀ»¹ÒªÖØÐÂÊäÈëÉÏÃæµÄÃüÁî?Ò²ÐíÄã»á˵£¬Õâ¸öºÜÈÝÒ×½â¾ö°¡£¬ÎÒдһ¸ö
SHELL½Å±¾£¬ÈÃËü°ïÎÒÈ¥Íê³É²»¾Í¿ÉÒÔÁË¡£ÊǵĶÔÓÚÕâ¸ö³ÌÐòÀ´Ëµ£¬ÊÇ¿ÉÒÔÆðµ½×÷Óõġ£µ«Êǵ±ÎÒÃǰÑÊÂÇéÏëµÄ¸ü¸´ÔÓÒ»µã£¬Èç¹ûÎÒÃǵijÌÐòÓм¸°Ù¸öÔ´³ÌÐòµÄ
ʱºò£¬ÄѵÀÒ²Òª±àÒëÆ÷ÖØÐÂÒ»¸öÒ»¸öµÄÈ¥±àÒë?
Ϊ´Ë£¬´ÏÃ÷µÄ³ÌÐòÔ±ÃÇÏë³öÁËÒ»¸öºÜºÃµÄ¹¤¾ßÀ´×öÕâ¼þÊÂÇ飬Õâ¾ÍÊÇmake¡£ÎÒÃÇÖ»ÒªÖ´ÐÐ
ÒÔÏÂmake£¬¾Í¿ÉÒÔ°ÑÉÏÃæµÄÎÊÌâ½â¾öµô¡£ÔÚÎÒÃÇÖ´ÐÐmake֮ǰ£¬ÎÒÃÇÒªÏȱàдһ¸ö·Ç³£ÖØÒªµÄÎļþ¡£--Makefile¡£¶ÔÓÚÉÏÃæµÄÄǸö³ÌÐòÀ´Ëµ£¬¿É
ÄܵÄÒ»¸öMakefileµÄÎļþÊÇ£º
# ÕâÊÇÉÏÃæÄǸö³ÌÐòµÄMakefileÎļþ:
main£ºmain.o mytool1.o mytool2.o
gcc -o main main.o mytool1.o mytool2.o
main.o£ºmain.c mytool1.h mytool2.h
gcc -c main.c
mytool1.o£ºmytool1.c mytool1.h
gcc -c mytool1.c
mytool2.o£ºmytool2.c mytool2.h
gcc -c mytool2.c
ÓÐÁËÕâ¸öMakefileÎļþ£¬²»ÂÛÎÒÃÇʲôʱºòÐÞ¸ÄÁËÔ´³ÌÐòµ±ÖеÄʲôÎļþ£¬ÎÒÃÇÖ»ÒªÖ´ÐÐmakeÃüÁÎÒÃǵıà
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
ÀýÒ»£º·¢ËÍ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 ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬Dennis Ritchie ºÍ Brian Kernighan ¾ÍÓà C ±¾É ......