青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

各unix平臺動態連接庫的編譯與使用

Posted on 2019-03-01 17:58 Prayer 閱讀(372) 評論(0)  編輯 收藏 引用 所屬分類: C/C++LINUX/UNIX/AIXmakefile
http://blog.itpub.net/283313/viewspace-2139257/

unix平臺下,動態連接庫的使用有兩種方式,link方式和dlopen方式。需要設置LD_LIBRARY_PATH作為查找路徑(低版本AIX使用LIBPATH)。link方式是程序啟動時加載所有編譯時連接的動態庫,直到程序結束也不會關閉。dlopen方式是在運行中按照參數指定的方式加載動態庫,并可以使用dlclose函數關閉,直到下次再使用dlopen重新加載。因此,link方式無法做到不重啟應用程序而更新動態庫版本,dlopen方式可以。


各平臺動態連接庫的編譯參數如下。文件wel.c,編譯成libwel.so(HPUX為libwel.sl)。

  1. #include <stdio.h>

  2. void welcome(void)
  3. {
  4.     puts("welcome,baby!");
  5. }



 linux:
  編譯libwel.so:
   gcc -fPIC -shared -o libwel.so wel.c -lc
    -fPIC  用相對地址定位
    -shared  生成動態連接庫


 sco unix open server:
  編譯libwel.so:
   cc -K PIC -G -o libwel.so wel.c -lc
    -K PIC  用相對地址定位
    -G  生成動態連接庫,包含了-b elf選項


 AIX:
  編譯libwel.so:
   xlc -G -bnoentry -o libwel.so wel.c -lc
    -G  指定生成動態連接庫
    -bnoentry 動態庫無需模塊入口(低版本AIX需要此參數)


 HP UX:
  編譯libwel.so:
   cc +z -c wel.c
   ld -b -o libwel.sl wel.o -lc
    +z  用相對地址定位
    -b  生成動態連接庫


 SUN OS: 很類似SCO,man幫助不全面
  編譯libwel.so:
   cc -G -o libwel.so wel.c -lc
    -G  生成動態連接庫


link方式使用動態連接庫的編譯參數如下。文件welcome.c,編譯成welcome可執行程序。

  1. extern void welcome(void);

  2. int main(void)
  3. {
  4.         welcome();
  5.         return 0;
  6. }



 linux:
   gcc -rdynamic -o welcome welcome.c -L. -lwel
    -rdynamic  導出所有符號供動態使用


 sco unix open server:
   cc -b elf -o welcome welcome.c -L. -lwel
    -b elf  必須使用ELF的可執行文件格式


 AIX:
   xlc -bdynamic -brtl -o welcome welcome.c -L. -lwel
    -bdynamic 使用動態連接方式,系統默認為此方式
    -brtl  -l參數使用.so為庫


 HP UX:
   cc -dynamic -o welcome welcome.c -L. -lwel
    -dynamic 使用動態連接方式,系統默認為此方式


 SUN OS:
  編譯libwel.so:
   cc -B dynamic -o welcome welcome.c -L. -lwel
    -B dynamic 使用動態連接方式


dlopen方式,其實就是把打開動態庫和查找符號的動作放在程序中執行。因此編譯可執行文件與普通的相同,只要連接libdl.so庫即可。文件welcome.c,編譯成welcome可執行程序。

  1. #include <dlfcn.h>

  2. int main(void)
  3. {
  4.     void *handle;
  5.     void (*welcome)(void);

  6.     handle=dlopen("libwel.so",RTLD_LAZY);
  7.     welcome=dlsym(handle,"welcome");
  8.     (*welcome)();
  9.     return 0;
  10. }



 linux:
   gcc -rdynamic -o welcome welcome.c -ldl
    -rdynamic 導出所有符號供動態使用
    -ldl  用系統libdl.so庫dlopen(),dlsym(),dlerror(),dlclose()


 sco unix open server:
   cc -b elf -o welcome welcome.c -lc
    -b elf  以elf格式,動態連接庫必須


 AIX:
   xlc -bexpall -o welcome welcome.c -ldl -lc
    -bexpall 使主程序的符號可以被動態庫使用


 HP UX:
   cc -o welcome welcome.c -ldl -lc


 SUN OS:
   cc -o welcome welcome.c -ldl -lc



------------------------------------------------------------------------------
參照的man手冊:
 cc, ld, ldd, dlopen, dlclose, dlerror, dlsym, CC



另:AIX運行動態庫時會加載系統內存統一管理,導致即使程序已退出,編譯時仍然認為還在使用而無法覆蓋。有兩個辦法,一是root用戶執行slibclean,清理系統加載而無人使用的動態庫,另一種是編譯的庫chmod go-rwx,使得組和其他人無權限,這種庫系統會認為用戶特有而不加載。


來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/283313/viewspace-2139257/,如需轉載,請注明出處,否則將追究法律責任。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区国产精品| 日韩西西人体444www| 国产一区二区三区四区hd| 91久久久一线二线三线品牌| 久久久精彩视频| 一区二区高清视频| 免费在线成人av| 久久久久久久波多野高潮日日| 亚洲欧美日韩直播| 欧美屁股在线| 亚洲人成网站777色婷婷| 亚洲男人影院| 亚洲午夜激情在线| 欧美图区在线视频| 久久精品女人天堂| 国产精品网红福利| 国产精品麻豆va在线播放| 99这里只有精品| 亚洲电影第1页| 久久精品国产精品亚洲综合| 国产精品一区二区久久久| 先锋影音久久久| 亚洲欧美电影院| 国产在线一区二区三区四区| 久久米奇亚洲| 毛片基地黄久久久久久天堂| 亚洲黄色免费| 亚洲啪啪91| 国产精品每日更新| 久久精品亚洲| 免费看的黄色欧美网站| 91久久精品国产91性色| 亚洲美女免费精品视频在线观看| 欧美日韩国产精品| 欧美一区二区在线| 亚洲精品国久久99热| 99re8这里有精品热视频免费| 欧美性jizz18性欧美| 久久欧美肥婆一二区| 欧美精品自拍| 久久国产色av| 欧美福利一区| 欧美综合77777色婷婷| 免费成人高清视频| 亚洲伊人伊色伊影伊综合网| 久久www免费人成看片高清| 亚洲美女电影在线| 亚洲一区中文字幕在线观看| 亚洲电影在线播放| 亚洲一区影音先锋| 亚洲黄色影院| 亚洲欧美999| 一区二区免费在线播放| 欧美中文字幕在线视频| 亚洲网站视频福利| 久久一二三国产| 亚洲一区二区三区色| 久久国产精品久久久久久久久久 | 亚洲精品网站在线播放gif| 国产精品丝袜xxxxxxx| 亚洲国产小视频在线观看| 国产精品a级| 亚洲激情在线观看| 一区二区激情| 欧美日韩一级片在线观看| 欧美国产日韩一区| 亚洲国产欧美不卡在线观看| 久久综合成人精品亚洲另类欧美 | 欧美刺激性大交免费视频| 久久国产精品久久久久久电车| 欧美日韩国产麻豆| 久久尤物视频| 日韩一级在线| 欧美777四色影视在线| 欧美日韩另类丝袜其他| 亚洲国产三级| 欧美一区二区三区精品| 久久久久国产精品厨房| 亚洲精品少妇30p| 免费观看久久久4p| 亚洲视频在线播放| 久久久久久久久岛国免费| 99热精品在线| 欧美精品系列| 香蕉av福利精品导航| 亚洲福利一区| 久久精品国产91精品亚洲| 18成人免费观看视频| 极品少妇一区二区三区精品视频| 久久久久久亚洲精品不卡4k岛国| 亚洲国产毛片完整版 | 亚洲国产精品传媒在线观看| 国产亚洲制服色| 亚洲一区二区视频在线观看| 亚洲一区二区在线看| 欧美日韩国产精品专区| 91久久精品日日躁夜夜躁国产| 亚洲国产精品久久久久秋霞不卡| 亚洲国产精品va在线看黑人| 久久蜜桃精品| 久久综合免费视频影院| 国模 一区 二区 三区| 午夜一区不卡| 欧美诱惑福利视频| 国产精品视频免费观看| 亚洲综合精品| 久久久久久日产精品| 在线看成人片| 欧美国产精品久久| 99视频超级精品| 性欧美激情精品| 国产婷婷97碰碰久久人人蜜臀| 午夜免费久久久久| 国产在线精品一区二区夜色| 久久久久久久久岛国免费| 91久久国产综合久久91精品网站| 一本色道久久99精品综合 | 亚洲国产精品123| 久久婷婷久久| 亚洲国产精品久久久久婷婷884| 亚洲人成网在线播放| 欧美日韩午夜视频在线观看| 亚洲一区中文| 亚洲高清一区二| 亚洲伊人第一页| 国内精品视频在线观看| 欧美3dxxxxhd| 夜夜嗨av一区二区三区四区| 亚洲欧美日韩精品久久久久| 国产一区二区毛片| 久久久另类综合| 亚洲人在线视频| 香蕉国产精品偷在线观看不卡| 国产精品制服诱惑| 久久久久一本一区二区青青蜜月| 老司机成人在线视频| 亚洲精品视频二区| 国产女人精品视频| 久久综合影视| 亚洲午夜精品福利| 蜜臀91精品一区二区三区| 一片黄亚洲嫩模| 伊人男人综合视频网| 国产精品久久福利| 美女精品自拍一二三四| 亚洲一区二区在线播放| 亚洲第一区中文99精品| 欧美在线高清| 一区二区三区久久| 91久久极品少妇xxxxⅹ软件| 国产精品视频1区| 欧美极品欧美精品欧美视频| 欧美在线看片| 一区二区三区精品国产| 免费在线日韩av| 欧美在线综合视频| 亚洲欧美成人一区二区三区| 亚洲娇小video精品| 国产午夜精品久久久久久免费视| 欧美久久久久久久久久| 久久久人成影片一区二区三区| 亚洲视屏一区| 99国产精品国产精品毛片| 欧美高清视频www夜色资源网| 欧美与欧洲交xxxx免费观看 | 亚洲免费视频在线观看| 亚洲精品乱码久久久久久| 免费亚洲一区二区| 久久精品成人一区二区三区| 欧美黑人在线观看| 久久久青草婷婷精品综合日韩| 国产情人综合久久777777| 久久亚洲欧洲| 欧美日产国产成人免费图片| 亚洲婷婷国产精品电影人久久| 一区二区欧美激情| 一区视频在线| 亚洲一区二区久久| 亚洲精选一区| 免费精品视频| 欧美精品在线视频| 麻豆精品视频在线| 久久精品国产欧美激情| 亚洲在线免费观看| 中文网丁香综合网| av不卡在线看| 日韩系列欧美系列| 一个色综合av| 中国日韩欧美久久久久久久久| 欧美激情在线观看| 欧美激情中文不卡| 亚洲激情专区| 亚洲精品网站在线播放gif| 日韩视频免费观看高清完整版| 亚洲人成人一区二区在线观看| 亚洲盗摄视频| 亚洲精品综合| 一区二区免费看| 亚洲网站在线播放| 亚洲精品综合精品自拍|