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

LinuxÇý¶¯µÄ±àÒëÓë¼ÓÔØ

±àÒëºÍ¼ÓÔØ
±¾Õ¿ªÍ·µÄ "hello world" Àý×Ó°üº¬ÁËÒ»¸ö¼ò¶ÌµÄ½¨Á¢²¢¼ÓÔØÄ£¿éµ½ÏµÍ³ÖÐÈ¥µÄÑÝʾ. µ±È», Õû¸ö¹ý³Ì±ÈÎÒÃÇĿǰ¿´µ½µÄ¶à. ±¾½ÚÌṩÁ˸ü¶àϸ½Ú¹ØÓÚÒ»¸öÄ£¿é×÷ÕßÈçºÎ½«Ô´Âëת»»³ÉÄÚºËÖеÄÔËÐеÄ×Óϵͳ.
2.4.1. ±àÒëÄ£¿é
µÚÒ»²½, ÎÒÃÇÐèÒª¿´Ò»ÏÂÄ£¿éÈçºÎ±ØÐë±»½¨Á¢. Ä£¿éµÄ½¨Á¢¹ý³ÌÓëÓû§¿Õ¼äµÄÓ¦ÓóÌÐòµÄ½¨Á¢¹ý³ÌÓÐÏÔÖø²»Í¬; ÄÚºËÊÇÒ»¸ö´óµÄ, ¶ÀÁ¢µÄ³ÌÐò, ¶ÔÓÚËüµÄ¸÷¸ö²¿·ÖÈçºÎ×éºÏÔÚÒ»ÆðÓÐÏêϸµÄÃ÷È·µÄÒªÇó. ½¨Á¢¹ý³ÌÒ²ÓëÒÔǰ°æ±¾µÄÄں˵Ĺý³Ì²»Í¬; еĽ¨Á¢ÏµÍ³ÓÃÆðÀ´¸ü¼òµ¥²¢ÇÒ²úÉú¸üÕýÈ·µÄ½á¹û, µ«ÊÇËü¿´ÆðÀ´ÓëÒÔǰ·Ç³£²»Í¬. Äں˽¨Á¢ÏµÍ³ÊÇһͷ¸ºÔðµÄÒ°ÊÞ, ÎÒÃǾͿ´ËüһС²¿·Ö. ÔÚÄÚºËÔ´ÂëµÄ Document/kbuild Ŀ¼Ï·¢ÏÖµÄÎļþ, ÈκÎÏëÀí½â±íÃæÖ®ÏµÄÕæÊµÇé¿öµÄÈ˶¼ÒªÔĶÁÒ»ÏÂ.
Óм¸¸öǰÌá, Äã±ØÐëÔÚÄܽ¨Á¢ÄÚºËÄ£¿éǰ½â¾ö. µÚÒ»¸öÊDZ£Ö¤ÄãÓа汾×㹻еıàÒëÆ÷, Ä£¿é¹¤¾ß, ÒÔ¼°ÆäËû±ØÒª¹¤¾ß. ÔÚÄÚºËÎĵµÄ¿Â¼ÏµÄÎļþ Documentation/Changes Ò»Ö±ÁгöÁËÐèÒªµÄ¹¤¾ß°æ±¾; ÄãÓ¦µ±ÔÚÏòǰ×ß֮ǰ²Î¿¼Ò»ÏÂËü. ÊÔͼ½¨Á¢Ò»¸öÄÚºË(°üÀ¨ËüµÄÄ£¿é), ÓôíÎóµÄ¹¤¾ß°æ±¾, ¿ÉÄܵ¼Ö²»¾¡µÄÆæ¹ÖµÄÄÑÌâ. ×¢Òâ, ż¶ûµØ, ±àÒëÆ÷µÄ°æ±¾Ì«Ð¿ÉÄÜ»áÒýÆðºÍÌ«Àϵİ汾ÒýÆðµÄÒ»ÑùµÄÎÊÌâ. ÄÚºËÔ´Âë¶ÔÓÚ±àÒëÆ÷×öÁ˺ܴóµÄ¼ÙÉè, еķ¢Ðа汾ÓÐʱ»áһʱµØÆÆ»µ¶«Î÷.
Èç¹ûÄãÈÔȻûÓÐÒ»¸öÄÚºËÊ÷ÔÚÊÖ±ß, »òÕß»¹Ã»ÓÐÅäÖúͽ¨Á¢ÄÚºË, ÏÖÔÚÊÇʱ¼äÈ¥×öÁË. ûÓÐÔ´ÂëÊ÷ÔÚÄãµÄÎļþϵͳÉÏ, ÄãÎÞ·¨Îª 2.6 Äں˽¨Á¢¿É¼ÓÔØµÄÄ£¿é. ʵ¼ÊÔËÐÐΪÆä¶ø½¨Á¢µÄÄÚºËÒ²ÊÇÓаïÖúµÄ( ¾¡¹Ü²»ÊDZØÒªµÄ ).
Ò»µ©ÄãÒѽ¨Á¢ÆðËùÓж«Î÷, ¸øÄãµÄÄ£¿é´´½¨Ò»¸ö makefile ¾ÍÊÇÖ±½ØÁ˵±µÄ. ʵ¼ÊÉÏ, ¶ÔÓÚ±¾ÕÂÇ°ÃæÕ¹Ê¾µÄ" hello world" Àý×Ó, µ¥Ðо͹»ÁË:
obj-m := hello.o
 
 ÊìϤ make , µ«ÊÇ¶Ô 2.6 Äں˽¨Á¢ÏµÍ³²»ÊìϤµÄ¶ÁÕß, ¿ÉÄÜÆæ¹ÖÕâ¸ö makefile ÈçºÎ¹¤×÷. ±Ï¾¹ÉÏÃæµÄÕâÒ»Ðв»ÊÇÒ»¸ö´«Í³µÄ makefile µÄÑù×Ó. ´ð°¸, µ±È», ÊÇÄں˽¨Á¢ÏµÍ³´¦ÀíÁËÓàÏµĹ¤×÷. ÉÏÃæµÄ°²ÅÅ( ËüÀûÓÃÁËÓÉ GNU make ÌṩµÄÀ©Õ¹Óï·¨ )±íÃ÷ÓÐÒ»¸öÄ£¿éÒª´ÓÄ¿±êÎļþ hello.o ½¨Á¢. ÔÚ´ÓÄ¿±êÎļþ½¨Á¢ºó½á¹ûÄ£¿éÃüÃûΪ hello.ko.
·´Ö®, Èç¹ûÄãÓÐÒ»¸öÄ£¿éÃûΪ module.ko, ÊÇÀ´×Ô 2 ¸öÔ´Îļþ( ¹ÃÇÒ³ÆÖ®Îª, file1.c ºÍ file2.c ), ÕýÈ·µÄÊéдӦµ±ÊÇ:
obj-m := module.o
module-objs := file1.o file2.o

 ¶ÔÓÚÒ»¸öÏóÉÏÃæÕ¹Ê¾µÄÒª¹¤×÷µÄ makefile, Ëü±ØÐëÔÚ¸ü´óµÄÄں˽¨Á¢ÏµÍ³µÄÉÏÏÂÎı»µ÷Ó


Ïà¹ØÎĵµ£º

linuxϵÄELFÎļþ·ÖÎö

from:http://www.dzjs.net/html/qianrushixitong/2008/0509/3125.html
1 ÒýÑÔ
    ELF(Executable and Linkable Format)¼´¿ÉÖ´ÐÐÁ¬½ÓÎļþ¸ñʽ£¬ÊÇLinux£¬SVR4ºÍSolaris2.0ĬÈϵÄÄ¿±êÎļþ¸ñʽ£¬Ä¿Ç°±ê×¼½Ó¿ÚίԱ»áTISÒѽ«ELF±ê×¼»¯ÎªÒ»ÖÖ¿ÉÒÆÖ²µÄÄ¿±êÎļþ¸ñʽ£¬ÔËÐÐÓÚ32-bit IntelÌåϵ΢»úÉÏ£¬¿ÉÓë¶àÖÖ²Ù×÷ ......

ÀûÓà linux µÄ 7za ±¸·ÝÎļþ£¬ÈçºÎÅųýÒ»¸öÎļþ¼Ð

ÓÉÓÚ£¬ÐèÒª¶¨Ê±±¸·ÝÊý¾Ý£¬ËùÒÔʹÓà 7zaÀ´´ò°ü¡£¡£¡£ Ä¿±êÎļþ¼Ð¾­³£º¬ÓдóÁ¿µÄÓû§ÉÏ´«Í¼Æ¬£¬ÕâЩͼƬÎÞÐè¸ßÃܶȶ¨ÆÚ±¸·Ý£¬ËùÒÔ£¬Ï£ÍûÔÚ´ò°üµÄʱºòÅųýËüÃÇ¡£¡£
   Ñо¿ÁËÒ»ÏÂ7zaµÄÃüÁîÐУ¬´óÖ¿ÉÒÔÕâÑùÍê³É£º
       7za a '-x!backup/fold/' test.zip backup
 &nb ......

LinuxϱàÒ붯̬¿â£¬¾²Ì¬¿â£¬ÒÔ¼°µ÷ÓÃ

so_test.h£º
#include
#include
void test_a();
void test_b();
void test_c();
test_a.c£º
#include "so_test.h"
void test_a()
{
printf("this is in test_a...\n");
}
test_b.c£º
#include "so_test.h"
void test_b()
{
printf("this is in test_b...\n");
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ