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

linux gcc ÃüÁî

1£¬-c ±àÒëÄ¿±ê´úÂë
      gcc -o hello.o -c hello.c  //-o Ö»ÊÇÖ¸¶¨Éú³ÉÄ¿±êÎļþÃû
      »ò
      gcc -c hello.c
      ¶¼Éú³Éhello.oÎļþ£¬²»¿ÉÒÔÖ´ÐС£
      gcc -o hello hello.o
      ÓÃÄ¿±êÎļþÉú³Éhello¿ÉÖ´ÐÐÎļþ¡£
      gcc -o hello hello.c
      ÓÃÔ´ÎļþÖ±½ÓÉú³Éhello¿ÉÖ´ÐгÌÐò¡£
2£¬
-fpic»ò-fPIC   ²úÉúλÖÃÎ޹صÄÄ¿±ê´úÂ룬¿ÉÓÃÓÚ¹¹Ôì¹²Ïíº¯Êý¿â¡£
¡¡¡¡# gcc -fPIC -c message.c
¡¡¡¡“PIC”ÃüÁîÐбê¼Ç¸æËß GCC
²úÉúµÄ´úÂë²»Òª°üº¬¶Ôº¯ÊýºÍ±äÁ¿¾ßÌåÄÚ´æλÖõÄÒýÓã¬ÕâÊÇÒòΪÏÖÔÚ»¹ÎÞ·¨ÖªµÀ
ʹÓøÃÏûÏ¢´úÂëµÄÓ¦ÓóÌÐò»á½«ËüÁ¬½Óµ½ÄÄÒ»¶ÎÄÚ´æµØÖ·¿Õ¼ä¡£ÕâÑù±àÒëÊä³öµÄÎÄ
¼þ message.o ¿ÉÒÔ±»ÓÃÓÚ½¨Á¢
¹²Ïíº¯Êý¿â¡£
¡¡¡¡# gcc -shared -o libmessage.so message.o
¡¡¡¡½«ÉÏÃæµÄmian.cʹÓù²Ïí¿âº¯Êýligmessage.so±àÒ룺
¡¡¡¡# gcc -o goodbye -lmessage -L. message.o
3£¬gccµÄ³£ÓÃÁ¬½ÓÑ¡ÏîÓÐÏÂÁм¸¸ö£º
¡¡¡¡-Ldir   ½«dirĿ¼¼Óµ½ËÑÑ°-lÑ¡ÏîÖ¸¶¨µÄº¯Êý¿âÎļþµÄĿ¼ÁбíÖÐÈ¥£¬²¢ÓÅÏÈÓÚgccȱʡµÄËÑË÷Ŀ¼¡£ÔÚÓжà¸ö-L
Ñ¡ÏîµÄÇé¿öÏ£¬°´ÃüÁîÐÐÉÏ-LÑ¡ÏîµÄÇ°ºó˳ÐòËÑË÷¡£dir¿ÉʹÓÃÏà¶Ô·¾¶¡£Èç-L../libµÈ¡£
¡¡¡¡-lname   ÔÚÁ¬½ÓʱʹÓú¯Êý¿âlibname.a£¬Á¬½Ó³ÌÐòÔÚ-LdirÑ¡ÏîÖ¸¶¨µÄĿ¼ÏºÍ/lib£¬/usr/libĿ¼ÏÂÑ°ÕҸÿâÎļþ¡£ÔÚûÓÐʹÓÃ-staticÑ¡Ïîʱ£¬Èç¹û·¢ÏÖ¹²Ïíº¯Êý¿âlibname.so£¬ÔòʹÓÃlibname.so½øÐж¯Ì¬Á¬½Ó¡£
¡¡¡¡-static   ½ûÖ¹Óë¹²Ïíº¯Êý¿âÁ¬½Ó¡£
¡¡¡¡-shared   ¾¡Á¿Óë¹²Ïíº¯Êý¿âÁ¬½Ó¡£
4£¬±àÒëÑ¡Ïî˳Ðò
          $ gcc test.o -L. -lhello -o test
          ×¢Òâ: $gcc -L. -lhello test.o -o test »á³ö´í£¡¡£
         Ô­ÒòÊÇ: -lÊÇÁ´½ÓÆ÷Ñ¡Ï±ØÐëÒª·Åµ½±»±àÒëÎļþµÄºóÃæ¡£ ËùÒÔÉÏÃæµÄÃüÁîÖÐ-lhelloÒ»¶¨Òª·Åµ½ test.oµÄºóÃæ¡£


Ïà¹ØÎĵµ£º

±àÒëlinuxÄÚºËÉú³ÉµÄsystem.mapÎļþÏê½â

ÓÐʱsystem.mapÎļþ¿ÉÒÔ°ïÖúÎÒÃÇÀí½âÄں˱àÒ룬Ëü¼Ç¼ÁËËùÓдúÂëµÄÔËÐеØÖ·¡£
system.mapÄÚÈݸñʽΪ£ºÏßÐÔµØÖ· ÀàÐÍ ·ûºÅ
¾ßÌåÄÚÈÝÈçÏ£º
00100000 A phys_startup_32
c0100000 T startup_32
c0100000 A _text                &nbs ......

linuxÄÚºËÄ£¿é³£ÓÃÃüÁî


Ò»¡¢Ê²Ã´ÊÇ modules£¿
¡¡¡¡modules µÄ×ÖÃæÒâ˼¾ÍÊÇÄ£¿é£¬ÔÚ´ËÖ¸µÄÊÇ kernel modules£»¼òµ¥À´Ëµ£¬ Ò»¸öÄ£¿éÌṩÁËÒ»¸ö¹¦ÄÜ£¬Èç isofs¡¢minix¡¢nfs¡¢lp µÈµÈ¡£´«Í³À´½²£¬Ä£¿é»¯ÓÐÁ½¸ö·½·¨½â¾ö£º Éè¼ÆÕß¿ÉÒ԰Ѹ÷ÏÄÜ·ÖÀëµ½µ¥¶ÀµÄ½Ð×öÏ̵߳Ĵ¦ÀíÖÐÈ¥£¬»òÕßÊǽ«ÄÚºËÒÔ°üº¬/ÅųýһЩ¹¦Äܵķ½Ê½ÖØбàÒë¡£Èç¹û°Ñ¹¦ÄÜ·ÖÀëµ½Ïß³ ......

linux CʹÓùܵÀͨÐÅ£¨Ò»£©

 LinuxÖеĽø³ÌͨÐÅ
1.¹ÜµÀ
   º¯ÊýÔ­ÐÍ£ºint pipe(int filedes[2]);
   º¯Êý·µ»ØÖµ£º ÕýÈ··µ»Ø0£»´íÎó·µ»Ø-1
   ÆäÖеÄÎļþÃèÊö·ûfiledes[0]ÊÇÓÃÀ´¶ÁÈ¡Êý¾ÝµÄ£¬filedes[1]ÊÇÓÃÀ´Ð´Êý¾ÝµÄ¡£
Àý×Ó1£º
#include<stdio.h>
#include<stdlib.h>
#include<u ......

linux .o a .so .la .loµÄÇø±ð

o: ±àÒëµÄÄ¿±êÎļþ
-X/S3fm'SH]X0
a:
¾²Ì¬¿â£¬Æäʵ¾ÍÊÇ°ÑÈô¸ÉoÎļþ´òÁ˸ö°ü
k
z3noU V
pR0
so: ¶¯Ì¬Á´½Ó¿â£¨¹²Ïí¿â£©Öйúµç×Ó¶¥¼¶¿ª·¢Íø----×îרҵµÄµç
×ÓÂÛ̳¡¢×îרҵµÄµç×Ó¹¤³Ìʦ²©¿ÍL&??,z4i&G&G&S
V
r0^mk zF5o"xC1c0
lo:
ʹÓÃlibtool±àÒë³öµÄÄ¿±êÎļþ£¬Æäʵ¾ÍÊÇÔÚo ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ