[Linux]GNU×Ô¶¯»¯¹¤¾ß£¨automake¹¤¾ßÁ´£©
Filename
£º
[Linux]GNU
×Ô¶¯»¯¹¤¾ß£¨
automake
¹¤¾ßÁ´£©
Version
£º
V1.0
Date
£º
12/01/2009
Author
£º
S.C.Leon <leonsc@126.com>
=====================================================================
GNU
×Ô¶¯»¯¹¤¾ß£¨
automake
¹¤¾ßÁ´£©
Ò»¡¢
Makefile
½éÉÜ
Makefile
ÊÇÓÃÓÚ×Ô¶¯±àÒëºÍÁ´½ÓµÄ£¬Ò»¸ö¹¤³ÌÓкܶàÎļþ×é³É£¬Ã¿Ò»¸öÎļþµÄ¸Ä±ä¶¼»áµ¼Ö¹¤³ÌµÄÖØÐÂÁ´½Ó£¬µ«ÊDz»ÊÇËùÓеÄÎļþ¶¼ÐèÒªÖØÐ±àÒ룬
Makefile
ÖмͼÓÐÎļþµÄÐÅÏ¢£¬ÔÚ
make
ʱ»á¾ö¶¨ÔÚÁ´½ÓµÄʱºòÐèÒªÖØÐ±àÒëÄÄЩÎļþ¡¡
Makefile
µÄ×ÚÖ¼¾ÍÊÇ£ºÈñàÒëÆ÷ÖªµÀÒª±àÒëÒ»¸öÎļþÐèÒªÒÀÀµÆäËûµÄÄÄЩÎļþ¡£µ±ÄÇЩÒÀÀµÎļþÓÐÁ˸ı䣬±àÒëÆ÷»á×Ô¶¯µÄ·¢ÏÖ×îÖÕµÄÉú³ÉÎļþÒѾ¹ýʱ£¬¶øÖØÐ±àÒëÏàÓ¦µÄÄ£¿é¡£
¶þ¡¢
GNU
×Ô¶¯»¯¹¤¾ß
¡¡¡¡
Makefile
µÄ»ù±¾½á¹¹²»ÊǺܸ´ÔÓ£¬µ«µ±Ò»¸ö³ÌÐò¿ª·¢ÈËÔ±¿ªÊ¼Ð´
Makefile
ʱ£¬¾³£»á»³ÒÉ×Ô¼ºÐ´µÄÊÇ·ñ·ûºÏ¹ßÀý£¬¶øÇÒ×Ô¼ºÐ´µÄ
Makefile
¾³£ºÍ×Ô¼ºµÄ¿ª·¢»·¾³Ïà¹ØÁª£¬µ±ÏµÍ³»·¾³±äÁ¿»ò·¾¶·¢ÉúÁ˱仯ºó£¬
Makefile
¿ÉÄÜ»¹Òª¸ú×ÅÐ޸ġ£ÕâÑù¾ÍÔì³ÉÁËÊÖ¹¤Êéд
Makefile
µÄÖî¶àÎÊÌ⡣Ϊ¸¨ÖúʵÏÖ²»Í¬±àÒë»·¾³Ö®¼äµÄÔ´´úÂëµÄ¿ÉÒÆÖ²ÐÔ£¬ÈËÃÇ´´ÔìÁË
GNU
×Ô¶¯»¯¹¤¾ß£¨
autotools
£©£¬
autoconf
£¬
autoheader
£¬
libtools
£¬
automake
ºÍÆäËûÐí¶à½Å±¾¹¤¾ßÒ»Æð¹¤×÷²¢¹²Í¬¹¹³ÉÁË
GNU
±àÒëϵͳ¡£
ʹÓÃ
automake
£¬³ÌÐò¿ª·¢ÈËÔ±Ö»ÐèҪдһЩ¼òµ¥µÄº¬ÓÐÔ¤¶¨ÒåºêµÄÎļþ£¬ÓÉ
autoconf
¸ù¾ÝÒ»¸öºêÎļþÉú³É
configure
£¬ÓÉ
automake
¸ù¾ÝÁíÒ»¸öºêÎļþÉú³É
Makefile.in
£¬ÔÙʹÓÃ
configure
ÒÀ¾Ý
Makefile.in
À´Éú³ÉÒ»¸ö·ûºÏ¹ßÀýµÄ
Makefile
¡£ÏÂÃæÎÒÃǽ«Ïêϸ½éÉÜ
Makefile
µÄ
automake
Éú³É·½·¨¡£
¶þ¡¢Ê¹ÓõĻ·¾³
¡¡¡¡±¾ÎÄËùÌáµ½µÄ³ÌÐòÊÇ»ùÓÚ
Linux
·¢Ðа汾£º
Ubuntu 9.04
£¨
linux
Ö÷Á÷·¢Ðаæ¾ù¿É£©£¬Ëü°üº¬ÁËÎÒÃÇÒªÓõ½µÄ
autoconf
£¬
automake
¡£
Èý¡¢
helloworld
ʾÀý
´Ó×ʹÓõÄÀý×Ó³ÌÐò
helloworld
¿ªÊ¼¡£
ÓÉ
helloworld.c
Ô´Îļþͨ¹ý
automake
¹¤¾ßÁ´×Ô¶¯Éú³É
Makefile
£¬×îºóÉú³É¿ÉÖ´ÐÐÎļþµÄ¼òÒª²½ÖèÈçÏ£º
1
£©Ð½¨Èý¸öÎļþ£º
helloworld.c
configure.in
Makefile.am
ÆäÖÐ
configure.in
ºÍ
Makefile.am
ÊÇÐèÒªÎÒÃÇ×Ô¼º´´½¨µÄ¡£¾ßÌåд·¨Ïê¼ûºóÎÄ¡£
2)
È»ºóÖ´ÐУº
aclocal;
autoconf;
automake --add-missing;
./config
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
LINUX ÏÂVIÉèÖÃ
Ó¦ÓóÌÐòÆô¶¯Ê±£¬ÏȶÁÆäÅäÖÃÎļþ¡£Õâ¶ÔÓÚvi/vimÀ´Ëµ¾ÍÊǹ¤×÷Ŀ¼ÏµÄÒþ²ØÎļþ.vimrc¡£
¹ý³Ì(ÒÔrootÓû§ÎªÀý)
#vi ~/.vimrc
ÓÃÒÔÏÂÃüÁîд.vimrcÎļþΪ£º
&nb ......
Linux ϵͳ´¦ÓÚÕý³£×´Ì¬Ê±£¬·þÎñÆ÷Ö÷»ú¿ª»ú£¨»òÖØÐÂÆô¶¯£©ºó£¬Äܹ»ÓÉϵͳÒýµ¼Æ÷³ÌÐò×Ô¶¯Òýµ¼ Linux ϵͳÆô¶¯µ½¶àÓû§Ä£Ê½£¬²¢ÌṩÕý³£µÄÍøÂç·þÎñ¡£Èç¹ûϵͳ¹ÜÀíÔ±ÐèÒª½øÐÐϵͳά»¤»òϵͳ³öÏÖÆô¶¯Ò쳣ʱ£¬¾ÍÐèÒª½øÈëµ¥Óû§Ä£Ê½»òÐÞ¸´Ä£Ê½¶Ôϵͳ½øÐйÜÀíÁË¡£Ê¹Óõ¥Óû§Ä£Ê½ÓÐÒ»¸öǰÌᣬ¾ÍÊÇÄúµÄϵͳÒýµ¼Æ÷£¨grub£©ÄÜÕý³£¹¤×÷£ ......
ÔÚ×î½üµÄÒ»¸ö¹ØÓÚLKMLµÄÌÖÂÛÖУ¬Linus¸ø³öÁËΪʲô²»ÓÃC++À´Ð´LinuxÄں˵ÄÀíÓÉ£º
"In fact, in Linux we did try C++ once already, back in 1992. It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.
“ÊÂʵÉÏ£¬ÎÒÃÇÔø¾³¢ÊÔ¹ýÓÃC++À´Ð´£¬ÊÇÔÚ1992ÄêµÄʱºò¡£ºÜÔã¸â¡£ÏàÐÅÎÒ--ÓÃC++À´Ð´ÄÚºË ......
¼¸ºõÿ¸ölinuxÇý¶¯¶¼Óиömodule_init¡£Ã»´í£¬Çý¶¯µÄ¼ÓÔØ¾Í¿¿Ëü¡£ÏÈÀ´·ÖÎöÒ»ÏÂmodule_init¡£¶¨ÒåÈçÏ£º
#define module_init(x) __initcall(x); //include\linux\init.h
#define ......