ÔÚLinuxÏÂÈçºÎʹÓÃ×Ô¼ºµÄ¿âº¯Êý
Ò»
ʹÓÃ¿â±ØÒªÐÔ
Ìá¸ß´úÂëÖØÓÃÐÔ¡£
¶þ
¿âµÄÖÖÀࣺ
1
¾²Ì¬¿â
Ò»°ãÒÔ
*.a
ÃüÃû¡£
³ÌÐò±àÒëʱ±»¼ÓÔØ£¬´Ëºó£¬Ö»Òª³ÌÐò²»±»ÖØÐ±àÒ룬¾²Ì¬¿â¾ÍûÓÐ×÷ÓÃÁË£¨¿ÉÒÔɾµô£©¡£
ÓÉ
ÓÚ¾²Ì¬¿âµÄ´úÂëÔÚ±àÒë¹ý³ÌÖÐÒѾ±»ÔØÈë¿ÉÖ´ÐгÌÐò£¬Òò´ËÌå»ý½Ï´ó£¬Èç¹ûÓжà¸öÓ¦ÓóÌÐò¶¼ÓÃÁËͬһ¸ö¾²Ì¬¿â£¬ÔÚ´æ·Å¿ÉÖ´ÐгÌÐòµÄÓ²ÅÌÖоͻáÓÐÕâ¸ö¾²Ì¬¿âµÄ¶à
·Ý¿½±´¡£Èç¹ûËûÃÇͬʱÔÚÔËÐУ¬ÄÇôÔÚÄÚ´æÖÐÒ²»áÓÐÕâ¸ö¾²Ì¬¿âµÄ¶à·Ý¿½±´¡£µ«ÊÇÈçÏÂÃæÌáµ½µÄ¶¯Ì¬¿âÏà±È½Ï£¬³ÌÐòÖ´ÐÐʱ¼ä±È½Ï¶Ì£¬ÒòΪûÓÐÖ´ÐÐʱ¿âº¯ÊýµÄ¼Ó
ÔØ¡£Ëùν“ÒԿռ任ʱ¼ä”¡£
ÏÂÃæÎÒÃÇÓÃÒ»¸öʵÀý˵Ã÷¾²Ì¬¿âµÄ±à³ÌºÍʹÓá£
//
¿âº¯Êý£º
hellowlib.c
#include <stdlib.h>
void printhellow()
{
printf("hellow,now in lib routine\n");
return ;
}
Ê×ÏÈÉú³ÉÄ¿±êÎļþ£º
gcc -c
printhellow.c
–o printhellow.o
È»ºóʹÓÃ
ar
£¨
archive
£©ÃüÁî°ÑÄ¿±êÎļþÖÆ×÷¿âÎļþ£º
ar cqs libhello.a printhellow.o
×¢Òâ¿âÎļþÃûÒ»¶¨ÊÇ
lib***.a
¸ñʽ£¬²»ÒªÍüÁ˼Ó
lib
×÷Ϊǰ׺¡£
ÏÂÃæÎÒÃÇдһ¸ö³ÌÐòµ÷Óþ²Ì¬¿â
libhello.a
ÖеÄ
printhellow
º¯Êý¡£
//testlib.c
int main(int arc, char **argv)
{
printhellow();
return ;
}
ÏÂÃæ±àÒ룺
gcc -o testlib testlib.c -L ./
-lhello
¼´¿ÉÉú³É¿ÉÖ´ÐÐÎļþ
testlib
¡£
×¢ÒâÉÏÃæµÄ
-L
£¨´óд£©Ö¸Ê¾¿âµÄ·¾¶ÔÚµ±Ç°Ä¿Â¼Ï¡£Èç¹ûûÓÐÕâ¸öÑ¡Ï¾ÍÐèÒª°Ñ¿â
libhello.a
¼ÓÈëµ½±ê׼·¾¶ÖС£Èç
/usr/lib
ÖС£
-l
£¨Ð¡Ð´£©Ö»ÐèÒª¸ú
hello
£¬ÆäËû×Ö·ûÈ«²¿²»Òª£¬·ñÔò³ö´í¡£
2
¶¯Ì¬¿â£¨¹²Ïí¿â£©
Ò»°ãÒÔ
.so
ÃüÃû£¨
share object
£©
Ó뾲̬¿â²»Í¬£¬¹²Ïí¿âµÄ´úÂëÊÇÔÚ¿ÉÖ´ÐгÌÐòÔËÐÐʱ²ÅÔØÈëÄÚ´æµÄ£¬ÔÚ±àÒë¹ý³ÌÖнö¼òµ¥µÄÒýÓã¬Òò´Ë´úÂëÌå»ý½ÏС¡£ÓëÉÏÃæÌáµ½µÄ¾²Ì¬¿âÏà±È£¬ºÜÊǽÚÔ¼¿Õ¼ä¡£µ«ÔËÐÐʱÐèÒªÔØÈ룬Òò´ËÔËÐÐʱ¼äÏà¶Ô¾²Ì¬¿â¶øÑԱȽϳ¤¡£Ëùν“ÒÔʱ
Ïà¹ØÎĵµ£º
½ñÌì¿´µ½Ê¦ÐÖ¹¤Î»ÉÏÓб¾Linux Kernel In a Nutshell£¬»¹ÊÇȫӢµÄÓ°Ó¡°æ£¬ËùÒԾͽè¹ýÀ´¿´¿´£¬·¢ÏÖÏÖÔÚ¿´Ó¢ÎĵÄÊé½¥½¥ÊÊÓ¦ÁË£¬»¹ÊDZȽÏÈÝÒ׵ģ¬ÊéÖпªÊ¼½éÉÜÈçºÎ±àÒëLinuxÄںˣ¬LinuxÄں˴óÈýµÄʱºòҲѧ¹ý±àÒë¹ý£¬µ«Êǵ±Ê±±àÒë±È½Ï¼òµ¥£¬Õâ´Î¾ö¶¨ÔÙÖØÍ·µ½Î²ºÃºÃ±àÒëһϣ¬Ê×ÏÈÏÂÔØlinux kernel£¬ÔÙÓÃsecureCRTÉÏ´«µ½Ubuntu 8. ......
Ŀ¼½á¹¹Îª£º
inc/hello.h
src/hello.c
main/main.c
Makefile
ÎļþÄÚÈÝΪ£º
hello.h:
void hello(char name[]);
hello.c:
#include <stdio.h>
void hello(char name[])
{
printf("Hello %s!\n", name);
}
main.c:
#include <stdio.h>
#include "hello.h"
// The second hello.h should ......
ÖÕ¶ËÊÇÒ»ÖÖ×Ö·ûÐÍÉ豸£¬ËüÓжàÖÖÀàÐÍ£¬Í¨³£Ê¹ÓÃttyÀ´¼ò³Æ¸÷ÖÖÀàÐ͵ÄÖÕ¶ËÉ豸¡£ttyÊÇTeletypeµÄËõд£¬TeletypeÊÇ×îÔç³öÏÖµÄÒ»ÖÖÖÕ¶ËÉ豸£¬ºÜÏóµç´«´ò×Ö»ú£¬ÊÇÓÉTeletype¹«Ë¾Éú²úµÄ¡£É豸Ãû·ÅÔÚÌØÊâÎļþĿ¼/dev/Ï£¬ÖÕ¶ËÌØÊâÉ豸ÎļþÒ»°ãÓÐÒÔϼ¸ÖÖ£º
1£¬´®Ðж˿ÚÖÕ¶Ë£¨/dev/ttySn£©£º´®Ðж ......
ÏÂÃæÕâ¸öÀý×ÓÁгöÁËËùÓÐϵͳ¶¨ÒåµÄ´íÎó´úÂë¼°´íÎóÃèÊö
Ô´´úÂëÊÇ£º
/************¹ØÓÚ±¾Îĵµ********************************************
*filename: strerror.c
*purpose: ÁгöÁËϵͳ¶¨ÒåµÄËùÓдíÎó´úÂë¼°ÃèÊö
*wrote by: zhoulifa(zhoulifa@163.com) ÖÜÁ¢·¢(http://zhoulifa.bokee.com)
Linux°®ºÃÕß Linux֪ʶ´«²¥ ......
ÔÚlinuxÏÂͨ¹ýsvn¸üÐÂÁËÒ»¸öphpÎļþ£¬Ä¿µÄÊÇÏëͨ¹ýÖ´ÐÐÕâ¸öÎļþÀ´¶ÁÊý¾Ý²åÈëµ½Êý¾Ý¿â¡£ÔÚÆäÖеļ¸Ì¨Ö´ÐÐûÓÐÎÊÌ⣬ÆäÖÐһ̨¾Í·¢ÏÖÁËCould not open input fileÕâ¸ö´íÎ󣬺óÀ´²éÕÒ×ÊÁϲŷ¢ÏÖÔÀ´ÊÇÎļþ¸ñʽµÄÎÊÌ⣬³ö´íʱÎļþ¸ñʽÊÇdos£¬¿ÉÒÔÔÚviÖÐÓÃ:set ffÀ´²é¿´£¬Èç¹ûÊÇdos¸ñʽ£¬ÄÇôÔòÓÃ:set ff=unixÀ´ÉèÖÃеĸñʽ£¬ÕâÑ ......