linux¶¯Ì¬Á´½Ó¿âµÄ´´½¨ÓëʹÓÃ
ʹÓÃlinux¶¯Ì¬Á´½Ó¿â£º
ÔÚUnixÉÏ´æÔÚÁ½Öֿ⣺¶¯Ì¬¿â£¨.so£©ºÍ¾²Ì¬¿â£¨.a£©£¬²ÉÓö¯Ì¬¿â£¨¹²Ïí¶ÔÏ󣩼¼Êõ¿ÉÒÔ·½±ã³ÌÐò¼ä¹²Ïí£¬½ÚÊ¡³ÌÐòÕ¼Óпռ䣬Ôö¼Ó³ÌÐòµÄ¿ÉÀ©Õ¹ÐÔºÍÁé»îÐÔ¡£
²Ù×÷¶¯Ì¬¿âµÄº¯ÊýÔÚdlfcn.hÎļþÖж¨Ò壬ËùÒÔÒªÔÚʹÓö¯Ì¬¿âʱinclude <dlfcn.h>
1. ´ò¿ª¶¯Ì¬Á´½Ó¿â£ºdlopen£¬º¯ÊýÔÐÍvoid *dlopen (const char *filename, int flag); dlopenÓÃÓÚ´ò¿ªÖ¸¶¨Ãû×Ö(filename)µÄ¶¯Ì¬Á´½Ó¿â£¬²¢·µ»Ø²Ù×÷¾ä±ú¡£±ÈÈ磬void *pHandle = dlopen(strSoFilePath, RTLD_LAZY);
2. È¡¶¯Ì¬¶ÔÏóµØÖ·£ºdlsym£¬º¯ÊýÔÐÍΪ: void *dlsym(void *handle, char *symbol); dlsym¸ù¾Ý¶¯Ì¬Á´½Ó¿â²Ù×÷¾ä±ú(handle)Óë·ûºÅ(symbol)£¬·µ»Ø·ûºÅ¶ÔÓ¦µÄµØÖ·¡£×¢ÒâʹÓÃÕâ¸öº¯Êý²»µ«»ñÈ¡º¯ÊýµØÖ·£¬Ò²¿ÉÒÔ»ñÈ¡±äÁ¿µØÖ·¡£±ÈÈ磬¼ÙÉèÎÒÔÚsoÖж¨ÒåÁËÒ»¸övoid mytest()º¯Êý£¬ÄÇÔÚʹÓÃsoʱÏÈÉêÃ÷Ò»¸öº¯ÊýÖ¸Õ룺void (*pMytest)();È»ºóʹÓÃdlsymº¯Êý½«º¯ÊýÖ¸ÕëpMytestÖ¸Ïòmytestº¯Êý£¬pMytest = (void (*)())dlsym(pHandle, "mytest");
3. ¹Ø±Õ¶¯Ì¬Á´½Ó¿â£ºdlclose£¬º¯ÊýÔÐÍΪ: int dlclose (void *handle); ¸Ãº¯Êý½«¸Ã.soµÄÒýÓüÆÊý¼õÒ»£¬µ±ÒýÓüÆÊýΪ0ʱ£¬½«Ëü´ÓϵͳÖÐÐ¶ÔØ¡£
4. ¶¯Ì¬¿â´íÎóº¯Êý£ºdlerror£¬º¯ÊýÔÐÍΪ: const char *dlerror(void); µ±¶¯Ì¬Á´½Ó¿â²Ù×÷º¯ÊýÖ´ÐÐʧ°Üʱ£¬dlerror¿ÉÒÔ·µ»Ø³ö´íÐÅÏ¢£¬·µ»ØÖµÎªNULLʱ±íʾûÓдíÎóÐÅÏ¢¡£
ÔÚÈ¡µ½º¯ÊýÖ´ÐеØÖ·ºó£¬¾Í¿ÉÒÔÔÚ¶¯Ì¬¿âµÄʹÓóÌÐòÀïÃæ¸ù¾Ý¶¯Ì¬¿âÌṩµÄº¯Êý½Ó¿ÚÉùÃ÷µ÷Óö¯Ì¬¿âÀïÃæµÄº¯Êý¡£ÔÚ±àдµ÷Óö¯Ì¬¿âµÄ³ÌÐòµÄmakefileÎļþʱ£¬ÐèÒª¼ÓÈë±àÒëÑ¡Ïî-ldl¡£
´´½¨linux¶¯Ì¬Á´½Ó¿â£º
´Óvoid *dlsym(void *handle, char *symbol); µÄ²ÎÊý¿ÉÒÔ¿´³ö£¬¸Ãº¯ÊýÖ»´«Á½¸ö²ÎÊý£ºÒ»¸öÖ¸ÏòsoµÄhandleºÍÒ»¸öº¯ÊýµÄsymbol£¬ËùÒÔsoÀïÃæµÄº¯ÊýÓ¦¸Ã²»ÔÊÐíÖØÔØ£¬·ñÔò¸ù¾ÝÒ»¸ösymbol²»ÄÜÈ·¶¨Ö¸ÏòÄǸöº¯Êý¡£ÎªÁ˼æÈÝCºÍC++ÔÚsoÖж¨Ò庯ÊýʱÓÃextern "C"£¬ÒÔÏÂÓÃÀý×Ó˵Ã÷ÈçºÎ´´½¨linux¶¯Ì¬Á´½Ó¿âsoÎļþ¡£
//test.h
#ifdef __cplusplus
extern "C"
{
#endif
void mytest();
#ifdef __cplusplus
}
#endif
//test.c
#include <stdio.h>
#include "mytest.h"
void mytest()
{
printf("mytest ok in .so file\n");
}
//main.cpp
#include <dlfcn.h>
#inclu
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
.tar
½â°ü£º tar xvf FileName.tar
´ò°ü£ºtar cvf FileName.tar DirName
£¨×¢£ºtarÊÇ´ò°ü£¬²»ÊÇѹËõ£¡£©
---------------------------------------------
.gz
½âѹ1£ºgunzip FileName.gz
½âѹ2£ºgzip -d FileName.gz
ѹËõ£ºgzip FileName
.tar.gz
½âѹ£ºtar zxvf FileName.tar.gz
ѹËõ£ºtar zcvf FileName.tar ......
ÔÚlinuxϰ²×°ÅäÖÃsvn¶ÀÁ¢·þÎñÆ÷
subversion(ÒÔϼò³Æsvn)ÊǽüÄêÀ´áÈÆðµÄ°æ±¾¹ÜÀí¹¤¾ß£¬ÊÇcvsµÄ½Ó°àÈË¡£ svn·þÎñÆ÷ÓÐ2ÖÖÔËÐз½Ê½£º¶ÀÁ¢·þÎñÆ÷ºÍ½èÖúapache¡£2ÖÖ·½Ê½¸÷ÓÐÀû±×¡£
svn´æ´¢°æ±¾Êý¾ÝÒ²ÓÐ2ÖÖ·½Ê½£ºBDBºÍFSFS¡£ÒòΪBDB·½Ê½ÔÚ·þÎñÆ÷ÖжÏʱ£¬ÓпÉÄÜËø×¡Êý¾Ý£¨ÎÒÔÚ¸ãldapʱ¾ÍÉîÊÜÆäº¦£¬Ã»·¨¸ùÖΣ©£¬ËùÒÔ»¹ÊÇ ......
ά»¤LinuxµÄssh¹¤¾ßÔÚʹÓÃÖУ¬Ò»µ©Óöµ½ÍøÂçÖжϣ¬Ôòµ±Ç°µÄshell¾Í»á×Ô¶¯¹Ø±Õ
µ±Ç°µÄ¹¤×÷½ø¶È¾Í»á¶ªÊ§£¬Õâ¶ÔÓÚÔ¶³ÌÉý¼¶µÈ±È½ÏºÄ·Ñʱ¼äµÄ¹¤×÷ÊǷdz£²»ÀûµÄ
¶ÔÓÚÔ¶³Ìµ÷ÊÊ´úÂëÒ²ÊǺܲ»¿É¿¿²»°²È«µÄ
Ϊ´Ë£¬¿ÉÒÔʹÓÃscreenÕâ¸ö¹¤¾ßÀ´½â¾öÕâ¸öÎÊÌâ¡£
¶ÔÓÚ×îС»¯µÄlinux£¬Í¨³£screenÊDz»°üº¬ÔÚϵͳÄڵġ£
ÐèÒª²éÕÒ²Ù×÷ϵͳµÄ°² ......