LinuxÏÂC¿ª·¢——gcc£¬gdbµÄʹÓÃ
Linux
ÏÂ
C
¿ª·¢——
gcc
£¬
gdb
µÄʹÓÃ
×÷Õߣº
zccst
ÎÒÃÇѧϰµÄ¹ý³ÌÓ¦¸ÃÊÇÒ»¸ö»ýÀ۵Ĺý³Ì£¬ÓÐÎÞµ½ÓУ¬ÓÖÉÙµ½¶à£¬¶ø²»ÄÜÏñÏÂɽµÄºï×Ó¡£
9
Ô·ݵÄʱºòÊǵÚÒ»´Îϵͳѧϰ
gcc, gdb, makefile
£¨Ïê¼ûÇ°Ãæ²©¿Í£©¡£Èç½ñ×÷ΪǶÈëʽϵͳµÄÒ»¸ö×é³É²¿·Ö£¬¾ö¶¨ÖØÑ§Ò»´Î£¬¸Ð¾õÀí½â¼ÓÉîÁËһЩ¡£
gcc
±àÒëÆ÷
ǰÌá±à¼¹¤¾ßµÄʹÓãº
vi
vim
Emacs
µÈ¡£
ÀíÂÛÆª
gcc
¿ÉÒÔʹ³ÌÐòÔ±Áé»îµØ¿ØÖƱàÒë¹ý³Ì¡£±àÒë¹ý³ÌÒ»°ã¿ÉÒÔ·ÖΪÏÂÃæËĸö½×¶Î£¬Ã¿¸ö½×¶Î·Ö±ðµ÷Óò»Í¬µÄ¹¤¾ß½øÐд¦Àí£¬Èçͼ
9-18
Ëùʾ¡£
Linux
ϵͳÖпÉÖ´ÐÐÎļþÓÐÁ½ÖÖ¸ñʽ¡£µÚÒ»ÖÖ¸ñʽÊÇ
a.out
¸ñʽ£¬ÕâÖÖ¸ñʽÓÃÓÚÔçÆÚµÄ
Linux
ϵͳÒÔ¼°
Unix
ϵͳµÄÔʼ¸ñʽ¡£
a.out
À´×ÔÓÚ
Unix C
±àÒë³ÌÐòĬÈϵĿÉÖ´ÐÐÎļþÃû¡£µ±Ê¹Óù²Ïí¿âʱ£¬
a.out
¸ñʽ¾Í»á·¢ÉúÎÊÌâ¡£°Ñ
a.out
¸ñʽµ÷ÕûΪ¹²Ïí¿âÊÇÒ»Öַdz£¸´ÔӵIJÙ×÷£¬ÓÉÓÚÕâ¸öÔÒò£¬Ò»ÖÖеÄÎļþ¸ñʽ±»ÒýÈë
Unix
ϵͳ
5
µÄµÚËİ汾ºÍ
Solaris
ϵͳÖС£Ëü±»³ÆÎª¿ÉÖ´ÐкÍÁ¬½ÓµÄ¸ñʽ£¨
ELF
£©¡£ÕâÖÖ¸ñʽºÜÈÝÒ×ʵÏÖ¹²Ïí¿â¡£
ELF
¸ñʽÒѾ±»
Linux
ϵͳ×÷Ϊ±ê×¼µÄ¸ñʽ²ÉÓá£
gcc
±àÒë³ÌÐò²úÉúµÄËùÓеĶþ½øÖÆÎļþ¶¼ÊÇ
ELF
¸ñʽµÄÎļþ£¨¼´Ê¹¿ÉÖ´ÐÐÎļþµÄĬÈÏÃûÈÔÈ»ÊÇ
a.out
£©¡£½Ï¾ÉµÄ
a.out
¸ñʽµÄ³ÌÐòÈÔÈ»¿ÉÒÔÔËÐÐÔÚÖ§³Ö
ELF
¸ñʽµÄϵͳÉÏ¡£
×¢£º
GCC
Ö§³ÖÊýÖÖµ÷ÊÔºÍÆÊÎöÑ¡Ïî¡£ÔÚÕâЩѡÏîÀ×î³£ÓõÄÊÇ
-g
ºÍ
-pg
Ñ¡Ïî¡£
ʵ¼ùƪ
gcc
µÄʹÓøñʽ£º
gcc
[options][filenames]
ÆäÖÐ
filenames
ΪËùÒª±àÒëµÄ³ÌÐòÔ´Îļþ¡£
options
¼ûÏÂÎÄ
gcc
µÄÖ÷Òª²ÎÊý¡£
µ±Ê¹ÓÃ
gcc
ʱ£¬
gcc
»áÍê³ÉÔ¤´¦Àí¡¢±àÒë¡¢»ã±àºÍÁ¬½Ó¡£Ç°Èý²½·Ö±ðÉú³ÉÄ¿±êÎļþ£¬Á¬½Óʱ£¬°ÑÉú³ÉµÄÄ¿±êÎļþÁ´½Ó³É¿ÉÖ´ÐÐÎļþ¡£
gcc
¿ÉÒÔÕë¶ÔÖ§³Ö²»Í¬µÄÔ´³ÌÐòÎļþ½øÐв»Í¬´¦Àí£¬Îļþ¸ñʽÒÔÎļþµÄºó׺À´Ê¶±ð¡£
vi hello.c
Ò»¡¢³£¼û²½Ö裺
¶ÔÓÚÖ»ÓÐÒ»¸öÔ´ÎļþµÄ¼òµ¥³ÌÐò£¬³£³£Ö»ÓбàÒ룬ÔËÐÐÁ½²½¡£
1
£¬
gcc hello.c -o hello
2
£¬
./hello
¶þ¡¢
gcc
±àÒëÁ÷³Ì
gcc and g++
·Ö±ðÊÇ
gnu
µÄ
c & c++
±àÒëÆ÷
gcc/g++
ÔÚÖ´ÐбàÒ빤×÷µÄʱºò£¬×ܹ²ÐèÒª
4
²½
hello.c
(
Ô´Âë
)
1
£¬
hello.i
Éú³ÉÔ¤´
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍ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 ......
ÎÒÃÇÔÚµ÷ÊÔÓ²¼þ°åʱ£¬¾³£ÐèÒª×ö¶à¸öjffs2µÄ¸ùÎļþϵͳӳÏñ£¬ÓÐʱҲҪ¶Ô±ÈÆäËû;¾¶µÃµ½µÄ¿ÉÓõÄjffs2¸ùÎļþϵͳӳÏñ¡£µ«jffs2µÄÎļþϵͳӳÏñ²»Ïó¹âÅ̵ÄÓ³ÏñÎļþÒ»Ñù¿ÉÒÔͨ¹ýloopÉ豸À´¹ÒÔØ£¬×ܲ»¿ÉÄÜÒ»¸ö¸öÉÕ¼µ½Ó²¼þ°åÈ¥¿´°É¡£ ºóÀ´µ½ÍøÉÏgoogleÁËÒ»°Ñ£¬×ó·ÓÒ·Ö®ºó×ÜËãÕÒµ½ÁËÒ»¸ö·½·¨¡£ÒòΪjffs2Êǹ¹½¨ÓÚMTDÉ豸ÉϵÄÎļ ......
ÔÚ¹ýÈ¥µÄÊ®ÄêÖУ¬Ç¶ÈëʽϵͳµÄ¿ª·¢·¢ÉúÁ˺ܴóµÄ±ä»¯¡£ÒÔǰǶÈëʽÉ豸ÍùÍùÊÇÒ»¸ö¹ÂÁ¢µÄ¡¢×ÊÔ´ÓÐÏÞµÄϵͳ£¬ËüÃÇ×·ÇóµÄÊÇÔÚÓÐÏ޵ļ۸ñÉÏÂú×ãÒ»¶¨µÄ¹¦ÄÜÐÔÒªÇó¡£Í¨³£ËüÃDzÉÓÃÄÇЩ¹¦Äܲ¢²»Ç¿´óµÄCPU£¬ÕâÒ²ÊÇ¿ª·¢Õß²»µÃ²»¾¡¿ÉÄܵØÑ¹ËõǶÈëʽϵͳÐÔÄܵÄÔÒò¡£¶ø½ñÌìÈËÃǶÔǶÈëʽÉ豸ÔÚ ......
screen.width*0.7)
{this.resized=true; this.width=screen.width*0.7; this.alt='Click here
to open new window\nCTRL Mouse wheel to zoom in/out';}"
onmouseover="if(this.width>screen.width*0.7) {this.resized=true;
this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='C ......
ÏÈÕ³ÌùÒ»¸ölinux×î¼òµ¥µÄÇý¶¯£¬Æäʵ¶ÔÓÚÒ»¸ö´Ó2.4ÍæÉÏÀ´µÄÈËÀ´Ëµ£¬Çý¶¯²»¸´ÔÓ£¬±È½Ï²»Ï°¹ßµÄÊÇÄǸömakefile
Çý¶¯±¾Éí£º
hello.c:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(vodi){
&nbs ......