Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÏÂGCC±àÒëµÄËĸö¹ý³Ì

3ks:http://boz8.com/house/article.aspx?aid=112
ÔÚLinuxϽøÐÐCÓïÑÔ±à³Ì£¬±ØȻҪ²ÉÓÃGNU GCCÀ´±àÒëCÔ´´úÂëÉú³É¿ÉÖ´ÐгÌÐò¡£
Ò»¡¢GCC¿ìËÙÈëÃÅ
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
ÕâÌõÃüÁîÒþº¬Ö´ÐÐÁË£¨1£©Ô¤´¦Àí¡¢£¨2£©»ã±à¡¢(3)±àÒë²¢(4)Á´½ÓÐγÉ×îÖյĶþ½øÖÆ¿ÉÖ´ÐгÌÐò¡£ÕâÀïδָ¶¨Êä³öÎļþ£¬Ä¬ÈÏÊä³öΪa.out¡£
ÈçºÎÒªÖ¸¶¨×îÖÕ¶þ½øÖÆ¿ÉÖ´ÐгÌÐòÃû£¬ÄÇôÓÃ-oÑ¡ÏîÀ´Ö¸¶¨Ãû³Æ¡£±ÈÈçÐèÒªÉú³ÉÖ´ÐгÌÐòhello.exe
ÄÇô
#gcc hello.c -o hello.exe
¶þ¡¢GCCµÄÃüÁîÆÊÎö--ËIJ½×ß
´ÓÉÏÃæÎÒÃÇÖªµÀGCC±àÒëÔ´´úÂëÉú³É×îÖÕ¿ÉÖ´ÐеĶþ½øÖƳÌÐò£¬GCCºǫ́Òþº¬Ö´ÐÐÁËËĸö½×¶Î²½Öè¡£
GCC±àÒëCÔ´ÂëÓÐËĸö²½Ö裺
Ô¤´¦Àí-----> ±àÒë ----> »ã±à ----> Á´½Ó
ÏÖÔÚÎÒÃǾÍÓÃGCCµÄÃüÁîÑ¡ÏîÀ´Öð¸öÆÊÎöGCC¹ý³Ì¡£
1£©Ô¤´¦Àí(Pre-processing)
Ôڸý׶Σ¬±àÒëÆ÷½«CÔ´´úÂëÖеİüº¬µÄÍ·ÎļþÈçstdio.h±àÒë½øÀ´£¬Óû§¿ÉÒÔʹÓÃgccµÄÑ¡Ïî”-E”½øÐв鿴¡£
Ó÷¨£º#gcc -E hello.c -o hello.i
×÷Ó㺽«hello.cÔ¤´¦ÀíÊä³öhello.iÎļþ¡£
[root]# gcc -E hello.c -o hello.i
[root]# ls
hello.c  hello.i
[root]# vi hello.i
# 1 "hello.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "hello.c"
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 291 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 292 "/usr/include/features.h" 2 3
# 314 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 315 "/usr/include/features.h" 2 3
# 26 "/usr/include/stdlib.h" 2 3
# 3 "hello.c" 2
void main(void)
{
printf("hello world!\r\n");
}
2)±àÒë½×¶Î(Compiling)
µÚ¶þ²½½øÐеÄÊDZàÒë½×¶Î£¬ÔÚÕâ¸ö½×¶ÎÖУ¬GccÊ×ÏÈÒª¼ì²é´úÂëµÄ¹æ·¶ÐÔ¡¢ÊÇ·ñÓÐÓï·¨´íÎóµÈ£¬ÒÔÈ·¶¨´úÂëµÄʵ¼ÊÒª×öµÄ¹¤×÷£¬ÔÚ¼ì²éÎÞÎóºó£¬Gcc°Ñ´úÂë·­Òë³É»ã±àÓïÑÔ¡£Óû§¿ÉÒÔʹÓÔ-S”Ñ


Ïà¹ØÎĵµ£º

ÍêÈ«Óà GNU/Linux ¹¤×÷


[¾«»ª] ÍêÈ«Óà GNU/Linux ¹¤×÷
http://www.chinaunix.net ×÷Õß:enfuzion  ·¢±íÓÚ£º2005-12-08 16:05:56
¡¾·¢±íÆÀÂÛ¡¿¡¾²é¿´Ô­ÎÄ¡¿¡¾LinuxÌÖÂÛÇø¡¿¡¾¹Ø±Õ¡¿
ת×Ôhttp://www.chinaunix.net/jh/4/16102.html
ÍêÈ«ÓàGNU/Linux ¹¤×÷
— ±÷Æú Windows µÍЧÂʵŤ×÷·½Ê½£¬·¢¾ò&n ......

LinuxÄÚºËÄ£¿éµÄ¹ÜÀí

Ò»¡¢LinuxÄÚºËÄ£¿éµÄ¹ÜÀí
 
 
1¡¢lsmod ÁмÓÒÔ¹ÒÔصÄÄÚºËÄ£¿é£»
 
lsmod ÊÇÁгöĿǰϵͳÖÐÒѼÓÔصÄÄ£¿éµÄÃû³Æ¼°´óСµÈ£»ÁíÍâÎÒÃÇ»¹¿ÉÒԲ鿴 /proc/modules £¬ÎÒÃÇÒ»Ñù¿ÉÒÔÖªµÀϵͳÒѾ­¼ÓÔصÄÄ£¿é£»
´úÂë:
[root@localhost beinan]# lsmod
2¡¢modinfo ²é¿´Ä£¿éÐÅÏ¢£»
 
modinfo ¿ÉÒԲ鿴ģ¿éµ ......

linux »ù´¡¸´Ï°£¨9£©É豸Çý¶¯ÈëÃÅת


Linux ÄÚºËÖвÉÓÿɼÓÔصÄÄ£¿é»¯Éè¼Æ£¨LKMs£¬Loadable Kernel
Modules£©£¬Ò»°ãÇé¿öϱàÒëµÄLinux
ÄÚºËÊÇÖ§³Ö¿É²åÈëʽģ¿éµÄ£¬Ò²¾ÍÊǽ«×î»ù±¾µÄºËÐÄ´úÂë±àÒëÔÚÄÚºËÖУ¬ÆäËûµÄ´úÂë¿ÉÒÔÑ¡ÔñÔÚÄÚºËÖУ¬»òÕß±àÒëΪÄں˵ÄÄ£¿éÎļþ¡£³£¼ûµÄÇý¶¯³ÌÐòÒ²ÊÇ×÷ΪÄÚºË
Ä£¿é¶¯Ì¬¼ÓÔصġ£
Ä£¿éÏà¹ØÃüÁî
lsmod Áгöµ±Ç°ÏµÍ³¼ÓÔØµÄ ......

LinuxÉùÒôÉ豸±à³ÌʵÀý

ÓÉÓÚÕâЩÎļþ²»ÊÇÆÕͨµÄÎļþ£¬ËùÒÔÎÒÃDz»ÄÜÓÃ
ANSI C
£¨±ê×¼
C
£©µÄ
fopen
¡¢
fclose
µÈÀ´²Ù×÷Îļþ£¬¶øÓ¦¸ÃʹÓÃϵͳÎļþ
I/O
´¦Àíº¯Êý£¨
open
¡¢
read
¡¢
write
¡¢
lseek
ºÍ
close
£©À´´¦ÀíÕâЩÉ豸Îļþ¡£
ioctl
£¨£©»òÐíÊÇ
Linux
ÏÂ×îÅÓÔӵĺ¯Êý£¬Ëü¿ÉÒÔ¿ØÖƸ÷ÖÖÎļþµÄÊôÐÔ£¬ÔÚ
Linux
ÉùÒôÉ豸± ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ