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

linux lib ¶¯Ì¬¿â

¶¯Ì¬¿â*.soÔÚlinuxÏÂÓÃcºÍc++±à³Ìʱ¾­³£»áÅöµ½£¬×î½üÔÚÍøÕ¾ÕÒÁ˼¸ÆªÎÄÕ½éÉܶ¯Ì¬¿âµÄ±àÒëºÍÁ´½Ó£¬×ÜËã¸ã¶®ÁËÕâ¸ö֮ǰһֱ²»Ì«Á˽âµÃ¶«¶«£¬ÕâÀï×ö¸ö±Ê¼Ç£¬Ò²ÎªÆäËüÕýΪ¶¯Ì¬¿âÁ´½Ó¿â¶ø¿àÄÕµÄÐÖµÜÃÇÌṩһµã°ïÖú¡£
1¡¢¶¯Ì¬¿âµÄ±àÒë
ÏÂÃæÍ¨¹ýÒ»¸öÀý×ÓÀ´½éÉÜÈçºÎÉú³ÉÒ»¸ö¶¯Ì¬¿â¡£ÕâÀïÓÐÒ»¸öÍ·Îļþ£ºso_test.h£¬Èý¸ö.cÎļþ£ºtest_a.c¡¢test_b.c¡¢test_c.c£¬ÎÒÃǽ«Õ⼸¸öÎļþ±àÒë³ÉÒ»¸ö¶¯Ì¬¿â£ºlibtest.so¡£
so_test.h£º
#include <stdio.h>
#include <stdlib.h>
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");
}
test_c.c£º
#include "so_test.h"
void test_c()
{
    printf("this is in test_c...\n");
}
½«Õ⼸¸öÎļþ±àÒë³ÉÒ»¸ö¶¯Ì¬¿â£ºlibtest.so
$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so
2¡¢¶¯Ì¬¿âµÄÁ´½Ó
ÔÚ1¡¢ÖУ¬ÎÒÃÇÒѾ­³É¹¦Éú³ÉÁËÒ»¸ö×Ô¼ºµÄ¶¯Ì¬Á´½Ó¿âlibtest.so£¬ÏÂÃæÎÒÃÇͨ¹ýÒ»¸ö³ÌÐòÀ´µ÷ÓÃÕâ¸ö¿âÀïµÄº¯Êý¡£³ÌÐòµÄÔ´ÎļþΪ£ºtest.c¡£
test.c£º
#include "so_test.h"
int main()
{
    test_a();
    test_b();
    test_c();
    return 0;
}
l         ½«test.cÓ붯̬¿âlibtest.soÁ´½ÓÉú³ÉÖ´ÐÐÎļþtest£º
$ gcc test.c -L. -ltest -o test
l         ²âÊÔÊÇ·ñ¶¯Ì¬Á¬½Ó£¬Èç¹ûÁгölibtest.so£¬ÄÇôӦ¸ÃÊÇÁ¬½ÓÕý³£ÁË
$ ldd test
l         Ö´ÐÐtest£¬¿ÉÒÔ¿´µ½ËüÊÇÈçºÎµ÷Óö¯Ì¬¿âÖеĺ¯ÊýµÄ¡£
3¡¢±àÒë²ÎÊý½âÎö
×îÖ÷ÒªµÄÊÇGCCÃüÁîÐеÄÒ»¸öÑ¡Ïî:
          -shared ¸ÃÑ¡ÏîÖ¸¶¨Éú³É¶¯Ì¬Á¬½Ó¿â£¨ÈÃÁ¬½ÓÆ÷Éú³ÉTÀàÐ͵ĵ¼³ö·ûºÅ±í£¬ÓÐʱºòÒ²Éú³ÉÈõÁ¬½ÓWÀàÐ͵ĵ¼³ö·ûºÅ£©£¬²»ÓøñêÖ¾Íⲿ³ÌÐòÎÞ·¨Á¬½Ó¡£Ï൱ÓÚÒ»¸ö¿ÉÖ´ÐÐÎļþ
l         -fPIC£º±íʾ±àÒëΪλÖöÀÁ¢µÄ´úÂ룬²»ÓôËÑ¡ÏîµÄ»°±àÒëºóµÄ´úÂëÊÇλÖÃÏà¹ØµÄËùÒÔ¶¯Ì¬ÔØÈëʱÊÇͨ¹ý´úÂ뿽±´µÄ·½Ê½


Ïà¹ØÎĵµ£º

linux 2.6 ÄÚºËÄ£¿éµÄMakefile



 
Linux 2.6 ÏÂÄÚºËÄ£¿éµÄMakefile
ÊÕ²Ø



Linux 2.6 ÏÂÄÚºËÄ£¿éµÄMakefile
# Makefile 2.6
obj-m += hello.o
KDIR:=/lib/modules/$(shell uname -r)/build
# PWD=$(shell pwd)
all:
 &n ......

linux_ѧϰ±Ê¼Ç_ÈçºÎÕÒµ½ºÍ°²×°Èí¼þ

1.ʹÓÃshellµÄwhichÃüÁ
È磺²éÕÒGUNµÄC±àÒëÆ÷°²×°Â·¾¶
$ which gcc
/usr/bin/gcc
2.Èç¹ûwhichûÓÐÕÒµ½ÒªÕÒµÄÎļþ£¬ÄǾÍÊÔÊÔwhereis£¬¸ÃÃüÁîËÑË÷¸ü´ó·¶Î§µÄϵͳĿ¼£¬ºÍshellËÑË÷·¾¶Î޹ء£
ÓÐЩϵͳwhichÃüÁîÎÞ·¨ÏÔʾÓû§Ã»Ö´ÐеÄȨÏÞÎļþ£º
È磺which ipppd
$ which ipppd
/usr/bin/which:no ipppd in £¨/bin:/ ......

Linuxϲ鿴cpuÀàÐÍ¡¢ÄÚ´æ´óС¡¢Ó²ÅÌ´óСÀàÐ͵È

http://blog.tianya.cn/blogger/post_show.asp?BlogID=2243487&PostID=21072119&idWriter=0&Key=0
Linuxϲ鿴cpuÀàÐÍ¡¢ÄÚ´æ´óС¡¢Ó²ÅÌ´óСÀàÐ͵Ƞ
CPU²é¿´£º
1¡¢¡¡¡¡# dmesg | grep CPU
¡¡¡¡Initializing CPU#0
¡¡¡¡CPU: Trace cache: 12K uops
¡¡¡¡CPU: L1 I-cache: 0K, L1 D-cache: 16K
¡¡¡¡CP ......

linux telnet·þÎñ

Ò»¡¢Ê²Ã´ÊÇtelnet
      TelnetµÄÓ¦Óò»½ö·½±ãÁËÎÒÃǽøÐÐÔ¶³ÌµÇ¼£¬Ò²¸øhackerÃÇÌṩÁËÓÖÒ»ÖÖÈëÇÖÊֶκͺóÃÅ£¬µ«ÎÞÂÛÈçºÎ£¬ÔÚÄ㾡ÇéÏíÊÜTelnetËù´ø¸øÄãµÄ±ã½ÝµÄͬʱ£¬ÄãÊÇ·ñÕæÕýµÄÁ˽âTelnetÄØ£¿¡¡¡¡
¡¡¡¡¶þ Ô¶³ÌµÇ¼¡¡¡¡
¡¡¡¡Telnet·þÎñËäȻҲÊôÓÚ¿Í»§»ú/·þÎñÆ÷Ä£Ð͵ķþÎñ£¬µ«Ëü¸ü´óµÄÒâÒåÔ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ