LinuxϵͳµÄÍ·ÎļþºÍ¿âÎļþËÑË÷·¾¶
IncludeµÄheaderÎļþ,Á¬½áÊý¾Ý¿â£¬ÏµÍ³¶¨Ò壬×ܹ²ÓÐÏÂÁÐÀ´Ô´Ö¸¶¨gccÈ¥ÄÇÕÒ¡£
µ±³õÔÚ±àÒëʱָ¶¨µÄ(ÔÚ~gcc/gcc/collect2.c:locatelib()
дÔÚspecsÄÚµÄ
ºóÀ´ÓÃ-D -I -LÖ¸¶¨µÄ
gcc»·¾³±äÁ¿É趨(±àÒëµÄʱºò)
ld.soµÄ»·¾³±äÁ¿(ÕâÊÇrun timeµÄʱºò£©
Ò»¡¢Í·Îļþ
gcc ÔÚ±àÒëʱÈçºÎȥѰÕÒËùÐèÒªµÄÍ·Îļþ £º
¡ùËùÒÔheader fileµÄËÑѰ»á´Ó-I¿ªÊ¼
¡ùÈ»ºóÕÒgccµÄ»·¾³±äÁ¿ C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH
¡ùÔÙÕÒÄÚ¶¨Ä¿Â¼
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
¿âÎļþµ«ÊÇÈç¹û×°gccµÄʱºò£¬ÊÇÓиø¶¨µÄprefixµÄ»°£¬ÄÇô¾ÍÊÇ
/usr/include
prefix/include
prefix/xxx-xxx-xxx-gnulibc/include
prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include
¶þ¡¢¿âÎļþ
cos()µÈº¯Ê½¿âµÄÑ¡ÏîÒª¶à¼Ó -lm
±àÒëµÄʱºò:
¡ùgcc»áÈ¥ÕÒ-L
¡ùÔÙÕÒgccµÄ»·¾³±äÁ¿LIBRARY_PATH
¡ùÔÙÕÒÄÚ¶¨Ä¿Â¼ /lib /usr/lib /usr/local/lib ÕâÊǵ±³õcompile gccʱдÔÚ³ÌÐòÄÚµÄ
Èý¡¢ÔËÐÐʱ¶¯Ì¬¿âµÄËÑË÷·¾¶
1¡¢ÔÚÅäÖÃÎļþ/etc/ld.so.confÖÐÖ¸¶¨¶¯Ì¬¿âËÑË÷·¾¶
2¡¢Í¨¹ý»·¾³±äÁ¿LD_LIBRARY_PATHÖ¸¶¨¶¯Ì¬¿âËÑË÷·¾¶£¨µ±Í¨¹ý¸Ã»·¾³±äÁ¿Ö¸¶¨¶à¸ö¶¯Ì¬¿âËÑË÷·¾¶Ê±£¬Â·¾¶Ö®¼äÓÃðºÅ"£º"·Ö¸ô£©
3¡¢ÔÚ±àÒëÄ¿±ê´úÂëʱָ¶¨¸Ã³ÌÐòµÄ¶¯Ì¬¿âËÑË÷·¾¶£¨»¹¿ÉÒÔÔÚ±àÒëÄ¿±ê´úÂëʱָ¶¨³ÌÐòµÄ¶¯Ì¬¿âËÑË÷·¾¶¡£
ÕâÊÇͨ¹ýgcc µÄ²ÎÊý"-Wl,-rpath,"Ö¸¶¨£¨ÈçÀý3Ëùʾ£©¡£µ±Ö¸¶¨¶à¸ö¶¯Ì¬¿âËÑË÷·¾¶Ê±£¬Â·¾¶Ö®¼äÓÃðºÅ"£º"·Ö¸ô£©
4¡¢Ä¬ÈϵĶ¯Ì¬¿âËÑË÷·¾¶/lib
5¡¢Ä¬ÈϵĶ¯Ì¬¿âËÑË÷·¾¶/usr/lib
¿ÉÒÔͨ¹ýÖ´ÐпÉÖ´ÐÐÎļþposµÃµ½µÄ½á¹û²»Í¬»ñÖªÆäËÑË÷µ½ÁËÄĸö¶¯Ì¬¿â£¬´Ó¶ø»ñµÃµÚ1¸ö¶¯Ì¬¿âËÑË÷˳Ðò£¬È»ºóɾ³ý¸Ã¶¯Ì¬¿â£¬
ÔÙÖ´ÐгÌÐòpos£¬»ñµÃµÚ2¸ö¶¯Ì¬¿âËÑË÷·¾¶£¬ÔÙɾ³ýµÚ2¸ö±»ËÑË÷µ½µÄ¶¯Ì¬¿â£¬
Èç´ËÍù¸´£¬½«¿ÉµÃµ½LinuxËÑË÷¶¯Ì¬¿âµÄÏȺó˳Ðò¡£
³ÌÐòposÖ´ÐеÄÊä³ö½á¹ûºÍËÑË÷µ½µÄ¶¯Ì¬¿âµÄ¶ÔÓ¦¹ØÏµÈç±í1Ëùʾ
³ÌÐòposÊä³ö½á¹û ʹÓõĶ¯Ì¬¿â ¶ÔÓ¦µÄ¶¯Ì¬¿âËÑË÷·¾¶Ö¸¶¨·½Ê½
./ ./libpos.so ±àÒëÄ¿±ê´úÂëʱָ¶¨µÄ¶¯Ì¬¿âËÑË÷·¾¶
/root/test/env/lib /root/test/env/lib/libpos.so »·¾³±äÁ¿LD_LIBRARY_PATHÖ¸¶¨µÄ¶¯Ì¬¿âËÑË÷·¾¶
/root/test/conf/lib /root/test/conf/lib/libpos.so ÅäÖÃÎļþ/etc/ld.so.
Ïà¹ØÎĵµ£º
Windows³ÌÐòÔ±ÈçºÎתÏòLinux¿ª·¢Ó¦Óã¿
ÕâÊÇÒ»·â·¢µ½ÓÊÏäÀïÃæµÄÓʼþ£¬¸Ð¾õÓеã´ú±íÐÔ£¬ÕâÀï×ö¸öͳһ»Ø´ð£¬Ò»¼ÒÖ®ÑÔ¹þ£¬»¶ÓÅÄש¡£
ÔÎÄÈçÏ£º
ÎÒ´Ócsdnѧϰ´ó±¾ÓªµÃµ½ÄúµÄÐÅÏ¢¡£²»ºÃÒâ˼´ò½ÁÄú¡£
ÎÒÏÖÔÚÓÃc++ÔÚlinuxÏ¿ª·¢´óÐÍÓ¦ÓóÌÐò¡£ÎÒÏëÇë½ÌÊÇ·ñÖµµÃÉîÈëѧϰlinux kernel¡£
ÎÒûÓÐÌØ±ð¶àµÄʱ¼ä¡£ÁíÍâÎÒÓжàÄêWind ......
root@linux ~]# tar [-cxtzjvfpPN] ÎļþÓëĿ¼ ....
²ÎÊý£º
-c £º½¨Á¢Ò»¸öѹËõÎļþµÄ²ÎÊýÖ¸Áî(create µÄÒâ˼)£»
-x £º½â¿ªÒ»¸öѹËõÎļþµÄ²ÎÊýÖ¸Á
-t £º²é¿´ tarfile ÀïÃæµÄÎļþ£¡
ÌØ±ð×¢Ò⣬ÔÚ²ÎÊýµÄÏ´ïÖУ¬ c/x/t ½öÄÜ´æÔÚÒ»¸ö£¡²»¿Éͬʱ´æÔÚ£¡
ÒòΪ²»¿ÉÄÜͬʱѹËõÓë½âѹËõ¡£
-z £ºÊÇ·ñͬʱ¾ßÓÐ gzip µÄÊôÐÔ£¿Ò ......
¶þ.LinuxÏµÍ³ÍøÂçÉ豸Çý¶¯³ÌÐò
¡¡¡¡2.1 ÍøÂçÇý¶¯³ÌÐòµÄ½á¹¹
¡¡¡¡ËùÓеÄLinuxÍøÂçÇý¶¯³ÌÐò×ñÑͨÓõĽӿڡ£Éè¼ÆÊ±²ÉÓõÄÊÇÃæÏò¶ÔÏóµÄ·½·¨¡£Ò»¸öÉ豸¾ÍÊÇÒ»¸ö¶ÔÏó(device ½á¹¹)£¬ËüÄÚ²¿ÓÐ×Ô¼ºµÄÊý¾ÝºÍ·½·¨¡£Ã¿Ò»¸öÉ豸µÄ·½·¨±»µ÷ÓÃʱµÄµÚÒ»¸ö²ÎÊý¶¼ÊÇÕâ¸öÉ豸¶ÔÏó±¾Éí¡£ÕâÑùÕâ¸ö·½·¨¾Í¿ÉÒÔ´æÈ¡×ÔÉíµÄÊý¾Ý(ÀàËÆÃæÏ ......
ÃüÁî
1.
file
×÷Óãº
file ͨ¹ý̽²âÎļþÄÚÈÝÀ´ÅжÏÎļþÀàÐÍ¡£
ʹÓÃfileÃüÁî¿ÉÒÔÖªµÀij¸öÎļþ¾¿¾¹ÊǶþ½øÖÆ(ELF¸ñʽ)µÄ¿ÉÖ´ÐÐÎļþ, »¹ÊÇShell scrīptÎļþ,»òÕßÊÇÆäËüµÄʲô¸ñʽ¡£fileÄÜʶ±ðµÄÎļþÀàÐÍÓÐĿ¼¡¢Shell½Å±¾¡¢Ó¢ÎÄÎı¾¡¢¶þ½øÖÆ¿ÉÖ´ÐÐÎļþ¡¢CÓïÑÔÔ´Îļþ¡¢Îı¾Îļþ¡¢DOSµÄ¿ÉÖ´ÐÐÎļþ¡£ ÐèҪ˵Ã÷µÄÊÇ,fileà ......