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

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");
}
test_a.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
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
×îÖ÷ÒªµÄÊÇGCCÃüÁîÐеÄÒ»¸öÑ¡Ïî:
-shared
¸ÃÑ¡ÏîÖ¸¶¨Éú³É¶¯Ì¬Á¬½Ó¿â£¨ÈÃÁ¬½ÓÆ÷Éú³ÉTÀàÐ͵ĵ¼³ö·ûºÅ±í£¬ÓÐʱºòÒ²Éú³ÉÈõÁ¬½ÓWÀàÐ͵ĵ¼³ö·ûºÅ£©£¬²»ÓøñêÖ¾Íⲿ³ÌÐòÎÞ·¨Á¬½Ó¡£Ï൱ÓÚÒ»¸ö¿ÉÖ´ÐÐÎļþ
l
-fPIC£º±íʾ±àÒëΪλÖöÀÁ¢µÄ´úÂ룬²»ÓôËÑ¡ÏîµÄ»°±àÒëºóµÄ´úÂëÊÇλÖÃÏà¹ØµÄËùÒÔ¶¯Ì¬ÔØÈëʱÊÇͨ¹ý´úÂ뿽±´µÄ·½Ê½À´Âú×㲻ͬ½ø³ÌµÄÐèÒª£¬¶ø²»ÄÜ´ïµ½Õæ
Õý´úÂë¶Î¹²ÏíµÄÄ¿µÄ¡£
l -L.£º±íʾҪÁ¬½ÓµÄ¿âÔÚµ±Ç°Ä¿Â¼ÖÐ
l -ltest£º±àÒëÆ÷²éÕÒ¶¯Ì¬Á¬½Ó¿âʱÓÐÒþº¬µÄÃüÃû¹æÔò£¬¼´ÔÚ¸ø³öµÄÃû×ÖÇ°Ãæ¼ÓÉÏlib£¬ºóÃæ¼ÓÉÏ.soÀ´È·¶¨¿âµÄÃû³Æ
l LD_LIBRARY_PATH£ºÕâ¸ö»·¾³±äÁ¿Ö¸Ê¾¶¯Ì¬Á¬½ÓÆ÷¿ÉÒÔ×°ÔØ¶¯Ì¬¿âµÄ·¾¶¡£
×îºó. Êä³ö¿âµÄ·¾¶£¬»òÕß¿½±´µ½/libĿ¼ÏÂ
export LD_LIBRARY_PATH=.  // ÀÏÆÅ´óÈ˸æËß°³µÄ
Ö´ÐР ./test
¸ã¶¨
¾²Ì¬:
ÏȱàÒë³É.o
gcc -c test_a.c test_b.c test_c.c
È»ºóÓÃarÃüÁî
ar -r libtest.a test_a.o test_b.o test_c.o


Ïà¹ØÎĵµ£º

Èý¿î Linux ϵÄÃâ·Ñ×ÀÃæ¼¶É±¶¾Èí¼þ(ͼ)


ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......

linuxÏÂviÓëvim±à¼­Æ÷µÄÇø±ð¼°Ê¹Ó÷½·¨

viÓëvimÒ»Ñù¶¼ÊDZ༭Æ÷£¬²»Í¬µÄÊÇvim¸ü¸ß¼¶Ò»Ð©£¬¿ÉÒÔÀí½âÊÇviµÄ¸ß¼¶°æ±¾¡£vi¾ÍÏñWindowsÖеļÆÊ±¾£¬¶øvimÔò¿ÉÒÔËãµÄÉÏÊÇ
officeÖеÄword¡£viÖ÷ÒªÓÃÀ´±à¼­Ò»Ð©Îļþ£¬vimÊdzÌÐòÔ±µÄºÃ¹¤¾ß¡£ºÃµÄ¡£¡£¡£¡£ÏÂÃæÔÚ½éÉÜÒ»ÏÂviµÄʹÓᣡ£¡£¡£¡£¡£
    1.
ʹÓÃvi½øÈëÒ»°ãģʽ
[root@linux ~]# vi test.tx ......

LinuxÏÂÈçºÎ²é¿´CPUÐÅÏ¢, °üÀ¨Î»ÊýºÍ¶àºËÐÅÏ¢


# uname -a
Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
(²é¿´µ±Ç°²Ù×÷ϵͳÄÚºËÐÅÏ¢)
# cat /etc/issue | grep Linux
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
(²é¿´µ±Ç°²Ù×÷ϵͳ·¢ÐаæÐÅÏ¢)
# cat /proc/cpuinfo | grep name | cut -f2 -d: ......

linuxÀïÃüÁîpkg config¹¤¾ßµÄʹÓÃ

Ò»¡¢±àÒëºÍÁ¬½Ó
        Ò»°ãÀ´Ëµ£¬Èç¹û¿âµÄÍ·Îļþ²»ÔÚ /usr/include Ŀ¼ÖУ¬ÄÇôÔÚ±àÒëµÄʱºòÐèÒªÓà -I
²ÎÊýÖ¸¶¨Æä·¾¶¡£ÓÉÓÚͬһ¸ö¿âÔÚ²»Í¬ÏµÍ³ÉÏ¿ÉÄÜλÓÚ²»Í¬µÄĿ¼Ï£¬Óû§°²×°¿âµÄʱºòÒ²¿ÉÒÔ½«¿â°²×°ÔÚ²»Í¬µÄĿ¼Ï£¬ËùÒÔ¼´Ê¹Ê¹ÓÃͬһ¸ö¿â£¬ÓÉÓÚ¿âµÄ·¾¶µÄ
²»Í¬£¬Ôì³ÉÁËÓà -I ²ÎÊýÖ ......

linuxÏÂCÓïÑÔ¶àÏ̱߳à³ÌʵÀý

ѧ¶«Î÷£¬ÍùÍùʵÀý²ÅÊÇ×îÈÃÈ˸ÐÐËȤµÄ£¬ÀÏÊÇѧ»ù´¡ÀíÂÛ£¬²»¶¯ÊÖ£¬¸Ð¾õûÓгɾ͸У¬ºÇºÇ¡£
   ÏÂÃæÏÈÀ´Ò»¸öʵÀý¡£ÎÒÃÇͨ¹ý´´½¨Á½¸öÏß³ÌÀ´ÊµÏÖ¶ÔÒ»¸öÊýµÄµÝ¼Ó¡£
»òÐíÕâ¸öʵÀýûÓÐʵ¼ÊÔËÓõļÛÖµ£¬µ«ÊÇÉÔ΢¸Ä¶¯Ò»Ï£¬ÎÒÃǾͿÉÒÔÓõ½ÆäËûµØ·½È¥À­¡£
ÏÂÃæÊÇÎÒÃǵĴúÂ룺
/*thread_example.c : c multiple thread p ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ