linuxÖ®gccÃüÁî
ÔÚLinuxϽøÐÐCÓïÑÔ±à³Ì£¬±ØÈ»Òª²ÉÓÃGNU GCCÀ´±àÒëCÔ´´úÂëÉú³É¿ÉÖ´ÐгÌÐò¡£GccÖ¸ÁîµÄÒ»°ã¸ñʽΪ£º
Gcc [Ñ¡Ïî] Òª±àÒëµÄÎļþ [Ñ¡Ïî] [Ä¿±êÎļþ]¡£ÆäÖУ¬Ä¿±êÎļþ¿Éȱʡ£¬GccĬÈÏÉú³É¿ÉÖ´ÐеÄÎļþÃûΪ£º±àÒëÎļþ.out
¿´Ò»Ï¾µäÈëÃųÌÐò"Hello World£¡"
# vi hello.c £¬±à¼ÈçÏ£º
#include <stdlib.h>
#include <stdio.h>
void main(void)
{
printf("hello world!\r\n");
}
ÓÃgcc±àÒë³ÉÖ´ÐгÌÐò¡£#gcc hello.c£¬¸ÃÃüÁhello.cÖ±½ÓÉú³É×îÖÕ¶þ½øÖÆ¿ÉÖ´ÐгÌÐòa.out¡£./a.out¾Í¿ÉÒÔÖ´ÐС£
ÕâÌõÃüÁîÒþº¬Ö´ÐÐÁË£¨1£©Ô¤´¦Àí¡¢£¨2£©»ã±à¡¢(3)±àÒë¡¢(4)Á´½Ó£¬ÐγÉ×îÖյĶþ½øÖÆ¿ÉÖ´ÐгÌÐò¡£ÏÖÔÚÎÒÃǾÍÓÃGCCµÄÃüÁîÑ¡ÏîÀ´Öð¸öÆÊÎöGCC¹ý³Ì¡£
1£©£¬Ô¤´¦Àí(Pre-processing)¡£Ôڸý׶Σ¬±àÒëÆ÷½«CÔ´´úÂëÖеİüº¬µÄÍ·ÎļþÈçstdio.h±àÒë½øÀ´£¬Óû§¿ÉÒÔʹÓÃgccµÄÑ¡Ïî”-E”½øÐв鿴¡£Ó÷¨£º#gcc -E hello.c -o hello.i£¬×÷Ó㺽«hello.cÔ¤´¦ÀíÊä³öhello.iÎļþ¡£Í¨¹ývi hello.i¿ÉÒÔ¿´µ½Ô¤´¦Àí¹ý³ÌÐÅÏ¢¡£
2£©£¬±àÒë½×¶Î(Compiling)¡£ÔÚÕâ¸ö½×¶ÎÖУ¬GccÊ×ÏÈÒª¼ì²é´úÂëµÄ¹æ·¶ÐÔ¡¢ÊÇ·ñÓÐÓï·¨´íÎóµÈ£¬ÒÔÈ·¶¨´úÂëµÄʵ¼ÊÒª×öµÄ¹¤×÷£¬ÔÚ¼ì²éÎÞÎóºó£¬Gcc°Ñ´úÂë·Òë³É»ã±àÓïÑÔ¡£Óû§¿ÉÒÔʹÓÔ-S”Ñ¡ÏîÀ´½øÐв鿴£¬Éú³É»ã±à´úÂë¡£
Ó÷¨£º[root]# gcc –S hello.i –o hello.s
3£©£¬»ã±à½×¶Î(Assembling)¡£»ã±à½×¶ÎÊǰѱàÒë½×¶ÎÉú³ÉµÄ”.s”Îļþת³É¶þ½øÖÆÄ¿±ê´úÂë¡£Ó÷¨£º[root]# gcc –c hello.s –o hello.o
4£©£¬Á´½Ó½×¶Î(Link)¡£Ó÷¨£º[root]# gcc hello.o –o hello.exe£¬×÷Ó㺽«±àÒëÊä³öÎļþhello.oÁ´½Ó³É×îÖÕ¿ÉÖ´ÐÐÎļþhello.exe¡£
ÔÚÕâ¸ö³ÌÐòÖв¢Ã»Óж¨Òå”printf”µÄº¯ÊýʵÏÖ£¬ÇÒÔÚÔ¤±àÒëÖаüº¬½øµÄ”stdio.h”ÖÐÒ²Ö»Óиú¯ÊýµÄÉùÃ÷£¬¶øÃ»Óж¨Ò庯ÊýµÄʵÏÖ£¬ÄÇô£¬ÊÇÔÚÄÄÀïʵÏÖ”printf”º¯ÊýµÄÄØ£¿×îºóµÄ´ð°¸ÊÇ£ºÏµÍ³°ÑÕâЩº¯ÊýʵÏÖ¶¼±»×öµ½ÃûΪlibc.so.6µÄ¿âÎļþÖÐÈ¥ÁË¡£¿ÉÒÔÓÃlddÃüÁî²é¿´¶¯Ì¬¿â¼ÓÔØÇé¿ö£º[root]# ldd hello.exe¡£
º¯Êý¿âÒ»°ã·ÖΪ¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ¡£¾²Ì¬¿âÊÇÖ¸±àÒëÁ´½Óʱ£¬°Ñ¿âÎļþµÄ´úÂëÈ«²¿¼ÓÈëµ½¿ÉÖ´ÐÐÎļþÖУ¬Òò´ËÉú³ÉµÄÎļþ±È½Ï´ó£¬µ«ÔÚ
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
´ÓLinux 2.6ÆðÒýÈëÁËÒ»Ì×еÄÇý¶¯¹ÜÀíºÍ×¢²á»úÖÆ:Platform_deviceºÍPlatform_driver¡£
LinuxÖд󲿷ֵÄÉ豸Çý¶¯£¬¶¼¿ÉÒÔʹÓÃÕâÌ×»úÖÆ, É豸ÓÃPlatform_device±íʾ£¬Çý¶¯ÓÃPlatform_driver½øÐÐ×¢²á¡£
Linux platform driver»úÖÆºÍ´«Í³µÄdevice driver »úÖÆ(ͨ¹ýdriver_registerº¯Êý½øÐÐ×¢²á)Ïà±È£¬Ò»¸öÊ®·ÖÃ÷ÏÔ ......
¸´ÖÆÎļþºÍĿ¼ÃüÁî cp
¸ñʽ£º cp [²ÎÊý] Ô´Îļþ»òĿ¼ Ä¿±êÎļþ»òĿ¼
˵Ã÷£º¸ÃÃüÁî°ÑÖ¸¶¨µÄÔ´Îļþ¸´ÖƵ½Ä¿±êÎļþ»ò°Ñ¶à¸öÔ´Îļþ¸´ÖƵ½Ä¿±êĿ¼ÖС£
³£ÓõIJÎÊý£º
- a ¸ÃÑ¡Ïîͨ³£ÔÚ¿½±´Ä¿Â¼Ê±Ê¹Óá£Ëü±£ÁôÁ´½Ó¡¢ÎļþÊôÐÔ£¬²¢µÝ¹éµØ¿½±´Ä¿Â¼£¬Æä×÷ÓõÈÓÚdpRÑ¡ÏîµÄ×éºÏ¡£
- d ¿½±´Ê±±£ÁôÁ´½Ó¡£
- f ɾ³ýÒѾ´æÔÚµÄÄ¿±ê ......
×÷Õߣº51cto
http://www.ccw.com.cn 2009-02-27 11:06:03
µ±Äã¶Ô±ðÈË˵£¬“ÎÒÒªÂòÁ¾³µ¡£”ËûÂíÉϾͻáÎÊÄ㣺“ʲô³µ£¿”¸£ÌØ¡¢·áÌï¡¢»¹ÊDZ¾ÌÊÇË«ÃÅÅܳµ¡¢Ð¡½Î³µ¡¢»¹ÊÇÃæ°ü³µ£¿µ±È»£¬»¹ÓÐÆäËûÀàËÆµÄÎÊÌâ¡£
ͬÑù£¬Èç¹ûÄã˵“ÎÒÏë°²×°Linux£¡”Äã»á±»Îʵ½Í¬ÑùµÄÎÊÌ⣺ÄĸöLinu ......