linuxϵľ²Ì¬¿âºÍ¶¯Ì¬¿âµÄ±àÒë
ÿ¸ö³ÌÐòʵÖÊÉ϶¼»áÁ´½Óµ½Ò»¸ö»òÕ߶à¸öµÄ¿â¡£±ÈÈçʹÓÃCº¯ÊýµÄ³ÌÐò»áÁ´½Óµ½CÔËÐÐʱ¿â£¬GUI³ÌÐò»áÁ´½Óµ½´°¿Ú¿âµÈµÈ¡£ÎÞÂÛÄÄÖÖÇé¿ö£¬Ä㶼»áÒª¾ö¶¨ÊÇÁ´½Óµ½¾²Ì¬¿â(static libary)»¹ÊǶ¯Ì¬¿â(dynamic libary)¡£
Á´½Óµ½¾²Ì¬¿â»áʹÄãµÄ³ÌÐòÓ·Ö×£¬²¢ÇÒÄÑÒÔÉý¼¶£¬µ«ÊÇ¿ÉÄÜ»á±È½ÏÈÝÒײ¿Êð¡£
¶øÁ´½Óµ½¶¯Ì¬¿â»áʹÄãµÄ³ÌÐòÇá±ã£¬²¢ÇÒÒ×ÓÚÉý¼¶£¬µ«ÊÇ»áÄÑÒÔ²¿Êð¡£
¾²Ì¬¿â
¾²Ì¬¿âÒ²¾ÍÏ൱ÓÚÊÇ°ÑһϵÁеÄobjectÎļþ·ÅÔÚͬһ¸öÎļþÖУ¨ÀàËÆwindowsÖеÄ.libÎļþ£©¡£µ±ÄãÌṩһ¸ö¾²Ì¬¿â¸øÁ´½ÓÆ÷ʱ£¬Á¬½ÓÆ÷½«»áËÑË÷¾²Ì¬¿â£¬´ÓÖÐÕÒµ½ËûËùÐèÒªµÄobjectÎļþ£¬ÌáÈ¡³öËûÃÇ£¬½«ËûÃÇÁ´½Óµ½ÄãµÄ³ÌÐòÖУ¬¾ÍÏñÄãÖ±½ÓÌṩÄÇЩÎļþÒ»Ñù¡£
ÈçºÎ´´½¨¾²Ì¬¿âÄØ£¿Äã¿ÉÒÔʹÓÃarÃüÁîÀ´´´½¨¡£
ÏÂÃæÎÒÃǾٸöÀý×Ó£º
test/lib/test1.c
#include <stdio.h>
int hello_world1()
{
printf("hello world1\n");
return 1;
}
test/lib/test2.c
#include <stdio.h>
void hello_world2()
{
printf(" hello world2\n");
}
test/app.c
#include <stdio.h>
int main()
{
hello_world1();
}
ÏÖÔÚÎÒÃDZàÒëËûÃǽøÈëĿ¼test/lib
$gcc -c test1.c
$gcc -c test2.c
$ls
test1.c test1.o test2.c test2.o
$ar cr libtest.a test1.o test2.o
$ls
libtest.a test1.c test1.o test2.c test2.o
cr±êÖ¾¸æËßar½«objectÎļþ·â×°(archive),ÎÒÃÇ¿ÉÒÔʹÓÃnm -s ÃüÁîÀ´²é¿´.aÎļþµÄÄÚÈÝ
$nm -s libtest.a
Archive index:
hello_world1 in test1.o
hello_world2 in test2.o
test1.o:
00000000 T hello_world1
U puts
test2.o:
00000000 T hello_world2
U puts
ÏÖÔÚÈÃÎÒÃDZàÒëÖ÷³ÌÐò
Ê×ÏÈÍ˳ölibĿ¼
$cd ..
$gcc -o app app.c -Llib -ltest
-LÖ¸¶¨ÁËlibµÄËÑË÷·¾¶£¬-lÖ¸¶¨ÁËÁ´½ÓµÄ¿âµÄÃû×Ö-ltestÒ²¾ÍÊÇÁ´½Ólibtest.a
$./app
hello world1
hello_world1£¨£©±»´Ólibtest.aÖÐÕÒµ½²¢Á´½Ó¹ýÀ´ÁË£¬ÓÚÊÇÕû¸öµÄ¹ý³ÌÖÐûÓгöÏÖÎÊÌâ¡£
¶¯Ì¬¿â
¶¯Ì¬¿â(static lib)Ò²¿ÉÒ»Ò²¿ÉÒÔ³ÉΪ¹²Ïí¿â(shared lib),Ò»°ãµÄºó׺ÃûÊÇ.so¡£¶¯Ì¬¿âÓ뾲̬¿âÓеãÀàËÆ£¬ËûÃǶ¼ÊÇһϵÁеÄobjectÎļþµÄ¼¯ºÏ£¬Ö»ÊÇËûÃǵÄ×éÖ¯·½Ê½²»Í¬¡£Í¬ÑùËûÃǵÄÁ´½Ó·½Ê½Ò²Ê
Ïà¹ØÎĵµ£º
×ܽ᣺1¡¢80X86ʹÓÃС¶Ë·¨£¬ÍøÂç×Ö½ÚÐòʹÓôó¶Ë·¨¡£
2¡¢¶þ½øÖƵÄÍøÂç±à³ÌÖУ¬´«ËÍÊý¾Ý£¬×îºÃÒÔunsigned char, unsigned short, unsigned int
À´´¦Àí£¬ unsign ......
½ÏÏêϸµÄshell scripts±à³Ì×ÊÁÏ£¬Ï£ÍûÔÚѧϰÖеÄÒ»ÆðÌÖÂÛѧϰ ¡¾×ª×Ôwww.bitsCN.com¡¿
1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´Ðг ......
1 Ç°ÑÔ
Ðí¶àÈËÔÚ·ÖÎölinux´úÂëʱ¶ÔÍøÂ粿·Ö£¨Ö÷ÒªÊÇsrc/linux/net£¬src/linux/include/net¼°src/linux/include/linuxĿ¼ÏµÄÎļþ£©±È½Ï¸ÐÐËȤ£¬È·Êµ£¬¾¡¹ÜÒѾ´ÓÊé±¾ÉÏѧµ½ÁË´óÁ¿µÄTCP/IPÔÀí£¬²»¶ÁÔ´ÂëµÄ»°£¬Í·ÄÔÖл¹Êǽ¨Á¢²»Æð¾ßÌåµÄÓ¡Ï󡣶ø·ÖÎöÕⲿ·Ö´úÂëµÄÒ»¸öÎÊÌâ±ãÊÇ´úÂëÖÚ¶à¶ø×ÊÁϺÜÉÙ¡£ÕâƪÎÄÕµÄÄ¿µÄ¾ÍÊǹ´ÀÕ³ö ......
5. ÒýºÅ
¡¡¡¡ÔÚÏò³ÌÐò´«µÝÈκβÎÊý֮ǰ£¬³ÌÐò»áÀ©Õ¹Í¨Åä·ûºÍ±äÁ¿¡£ÕâÀïËùνÀ©Õ¹µÄÒâ˼ÊdzÌÐò»á°ÑͨÅä·û£¨±ÈÈç*£©Ìæ»»³ÉºÏÊʵÄÎļþÃû£¬Ëü±äÁ¿Ìæ»»³É±äÁ¿Öµ¡£ÎªÁË·ÀÖ¹³ÌÐò×÷ÕâÖÖÌæ»»£¬Äú¿ÉÒÔʹÓÃÒýºÅ£ºÈÃÎÒÃÇÀ´¿´Ò»¸öÀý×Ó£¬¼ÙÉèÔÚµ±Ç°Ä¿Â¼ÏÂÓÐһЩÎļþ£¬Á½¸öjpgÎļþ£¬ mail.jpg ºÍtux.jpg¡£
¡¡¡¡1.2 ±àÒëSHELL½Å±¾
¡¡¡¡#ch ......