Linux¹²Ïí¿â
¹²Ïí¿âµÄÃüÃû¹ßÀý
°´ÕÕ¹²Ïí¿âµÄÃüÃû¹ßÀý£¬Ã¿¸ö¹²Ïí¿âÓÐÈý¸öÎļþÃû£ºreal name¡¢sonameºÍlinker
name¡£ÕæÕýµÄ¿âÎļþ£¨¶ø²»ÊÇ·ûºÅÁ´½Ó£©µÄÃû×ÖÊÇreal
name£¬°üº¬ÍêÕûµÄ¹²Ïí¿â°æ±¾ºÅ¡£ÀýÈçÉÏÃæµÄlibcap.so.1.10¡¢libc-2.8.90.soµÈ¡£
sonameÊÇÒ»¸ö·ûºÅÁ´½ÓµÄÃû×Ö£¬Ö»°üº¬¹²Ïí¿âµÄÖ÷°æ±¾ºÅ£¬Ö÷°æ±¾ºÅÒ»Ö¼´¿É±£Ö¤¿âº¯ÊýµÄ½Ó¿ÚÒ»Ö£¬Òò´ËÓ¦ÓóÌÐòµÄ.dynamic¶ÎÖ»¼Ç¼¹²Ïí
¿âµÄsoname£¬Ö»ÒªsonameÒ»Ö£¬Õâ¸ö¹²Ïí¿â¾Í¿ÉÒÔÓá£ÀýÈçÉÏÃæµÄlibcap.so.1ºÍlibcap.so.2ÊÇÁ½¸öÖ÷°æ±¾ºÅ²»Í¬µÄ
libcap£¬ÓÐЩӦÓóÌÐòÒÀÀµÓÚlibcap.so.1£¬ÓÐЩӦÓóÌÐòÒÀÀµÓÚlibcap.so.2£¬µ«¶ÔÓÚÒÀÀµlibcap.so.1µÄÓ¦ÓóÌÐòÀ´
˵£¬ÕæÕýµÄ¿âÎļþ²»¹ÜÊÇlibcap.so.1.10»¹ÊÇlibcap.so.1.11¶¼¿ÉÒÔÓã¬ËùÒÔʹÓù²Ïí¿â¿ÉÒԺܷ½±ãµØÉý¼¶¿âÎļþ¶ø²»ÐèÒªÖØÐ±àÒë
Ó¦ÓóÌÐò£¬ÕâÊǾ²Ì¬¿âËùûÓеÄÓŵ㡣עÒâlibcµÄ°æ±¾±àºÅÓÐÒ»µãÌØÊ⣬libc-2.8.90.soµÄÖ÷°æ±¾ºÅÊÇ6¶ø²»ÊÇ2»ò2.8¡£
linker name½öÔÚ±àÒëÁ´½ÓʱʹÓã¬gccµÄ-LÑ¡ÏîÓ¦¸ÃÖ¸¶¨linker nameËùÔÚµÄĿ¼¡£ÓеÄlinker nameÊÇ¿âÎļþµÄÒ»¸ö·ûºÅÁ´½Ó£¬ÓеÄlinker nameÊÇÒ»¶ÎÁ´½Ó½Å±¾¡£
££££££££££££££´´½¨ºÍʹÓþ²Ì¬¿â££££££££££££££££££
ÏêϸµÄʹÓÃÇé¿ö£¬Çë´ó¼ÒmanÊֲᣬÕâÀïÖ»½éÉÜһϡ£¾²Ì¬¿âÏà¶ÔµÄ±È½Ï¼òµ¥¡£
´´½¨Ò»¸ö¾²Ì¬¿âÊÇÏ൱¼òµ¥µÄ¡£Í¨³£Ê¹Óà ar ³ÌÐò°ÑһЩĿ±êÎļþ£¨.o£©×éºÏÔÚÒ»Æð£¬
³ÉΪһ¸öµ¥¶ÀµÄ¿â£¬È»ºóÔËÐÐ ranlib£¬ÒÔ¸ø¿â¼ÓÈëһЩË÷ÒýÐÅÏ¢¡£
££££££££££££££££´´½¨ºÍʹÓù²Ïí¿â££££££££££££££££££
ÌØÊâµÄ±àÒëºÍÁ¬½ÓÑ¡Ïî
-D_REENTRANT ʹµÃÔ¤´¦ÀíÆ÷·ûºÅ _REENTRANT ±»¶¨Ò壬Õâ¸ö·ûºÅ¼¤»îһЩºêÌØÐÔ¡£
-fPIC Ñ¡Ïî²úÉúλÖöÀÁ¢µÄ´úÂë¡£ÓÉÓÚ¿âÊÇÔÚÔËÐеÄʱºò±»µ÷È룬Òò´ËÕâ¸ö
Ñ¡ÏîÊDZØÐèµÄ£¬ÒòΪÔÚ±àÒëµÄʱºò£¬×°ÈëÄÚ´æµÄµØÖ·»¹²»ÖªµÀ¡£Èç¹û
²»Ê¹ÓÃÕâ¸öÑ¡Ï¿âÎļþ¿ÉÄܲ»»áÕýÈ·ÔËÐС£
-shared Ñ¡Ïî¸æËß±àÒëÆ÷²úÉú¹²Ïí¿â´úÂë¡£
-Wl,-soname -Wl ¸æËß±àÒëÆ÷½«ºóÃæµÄ²ÎÊý´«µÝµ½Á¬½ÓÆ÷¡£¶ø -soname Ö¸¶¨ÁË
¹²Ïí¿âµÄ soname¡£
££ ¿ÉÒÔ°Ñ¿âÎļþ¿½±´µ½ /etc/ld.so.conf ÖÐÁоٳöµÄÈκÎĿ¼ÖУ¬²¢ÒÔ
root Éí·ÝÔËÐÐ ldconfig£»»òÕß
££ ÔËÐÐ export LD_LIBRARY_PATH='pwd'£¬Ëü°Ñµ±Ç°Â·¾¶¼Óµ½¿âËÑË÷·¾¶ÖÐÈ¥¡£
££££££££££££££Ê¹Óø߼¶¹²Ïí¿âÌØÐÔ££££££££££££££££££
1. ldd ¹¤¾ß
ldd ÓÃÀ´ÏÔʾִÐÐÎļþÐèÒªÄÄЩ¹²Ïí¿â, ¹²Ïí¿â×°ÔØ¹ÜÀíÆ÷ÔÚÄÄÀïÕÒµ½ÁËÐèÒªµÄ¹²Ïí¿â.
2. soname
Ïà¹ØÎĵµ£º
´ÓÎļþÄÚÈݲéÕÒÆ¥ÅäÖ¸¶¨×Ö·û´®µÄÐУº
$ grep "±»²éÕÒµÄ×Ö·û´®" ÎļþÃû
´ÓÎļþÄÚÈݲéÕÒÓëÕýÔò±í´ïʽƥÅäµÄÐУº
$ grep –e “ÕýÔò±í´ïʽ” ÎļþÃû
²éÕÒʱ²»Çø·Ö´óСд£º
$ grep –i "±»²éÕÒµÄ×Ö·û´®" ÎļþÃû
²éÕÒÆ¥ÅäµÄÐÐÊý£º
$ grep -c "±»²éÕÒµÄ×Ö·û´®" ÎļþÃû
......
¼òµ¥ÊµÀý˵Ã÷´ý²¹³ä£¬ÊµÀýÔ´Âë¿ÉÔÚ´ËÁ´½ÓÏÂÔØhttp://d.download.csdn.net/down/2389895/sanlinux
jniNative.cpp
#include "jniNative.h"
#include "mymain.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject arg, jstring instring)
{
&nb ......
tar ÎļþÊǼ¸¸öÎļþºÍ£¨»ò£©Ä¿Â¼ÔÚÒ»¸öÎļþÖеļ¯ºÏ¡£ÕâÊÇ´´½¨±¸·ÝºÍ¹éµµµÄ¼Ñ¾¶¡£
tar ʹÓõÄÑ¡ÏîÓУº
-c — ´´½¨Ò»¸öй鵵¡£
-f — µ±Óë -c Ñ¡ÏîÒ»ÆðʹÓÃʱ£¬´´½¨µÄ tar ÎļþʹÓøÃÑ¡ÏîÖ¸¶¨µÄÎļþÃû£»µ±Óë -x Ñ¡ÏîÒ»ÆðʹÓÃʱ£¬Ôò½â³ý¸ÃÑ¡ÏîÖ¸¶¨µÄ¹éµµ¡£
-t — ÏÔʾ°üÀ¨ÔÚ tar ÎļþÖеÄÎļþÁÐ±í¡£
-v ......
Ò»¡¢Ê¹ÓÃÃüÁîÉèÖÃubuntuµÄipµØÖ·
1.ÐÞ¸ÄÅäÖÃÎļþblacklist.conf½ûÓÃIPV6£º
sudo vi /etc/modprobe.d/blacklist.conf
2.ÔÚÎĵµ×îºóÌí¼Ó blacklist ipv6£¬È»ºó²é¿´Ð޸Ľá¹û£º
cat /etc/modprobe.d/blacklist.conf
3.ÉèÖÃIP£¨ÉèÖÃÍø¿¨eth0µÄIPµØÖ·ºÍ×ÓÍøÑÚÂ룩
sudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0 ......
Linux ÏÂʲô¶¼±È½ÏÂé·³£¬¾ÍÁ¬ÐÞ¸ÄÖ÷»úÃûÒ²²»ÀýÍâ¡£
Linux °²×°ºÃºó£¬ÆäĬÈϵÄÖ÷»úÃûÊÇ localhost¡£ÐÞ¸Ä Linux Ö÷»úÃûÐèÒª3²½¡£
ʹÓà hostname Ð޸ĵ±Ç°Ö÷»úÃû¡£
hostname new-hostname
ÐÞ¸Ä /etc/sysconfig/network ÅäÖÃÎļþ£¬ÒÔ±ãÏ´ÎÖØÆôµÄʱ£¬Ê¹ÓÃеÄÖ÷»úÃû¡£
´ò¿ª /etc/sysconfig/network Îļþ£ ......