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

Prayer

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

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

Posted on 2019-03-01 17:58 Prayer 閱讀(367) 評論(0)  編輯 收藏 引用 所屬分類: C/C++ 、LINUX/UNIX/AIX 、makefile
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>
            亚洲日本va在线观看| 久久成人资源| 一区二区三区欧美在线观看| 国产女人精品视频| 欧美日韩在线视频一区二区| 久久综合伊人77777麻豆| 亚洲免费在线播放| 亚洲影视综合| 久久免费高清视频| 欧美一级网站| 久久五月婷婷丁香社区| 欧美99在线视频观看| 欧美大片在线观看一区| 久久精品盗摄| 久久视频在线视频| 欧美激情亚洲综合一区| 夜夜精品视频| 久久久久久穴| 欧美韩国日本一区| 国产一区二区三区高清播放| 在线不卡中文字幕| 小黄鸭精品aⅴ导航网站入口| 欧美 日韩 国产 一区| 国产精品一区二区男女羞羞无遮挡| 国产欧美日韩中文字幕在线| 亚洲第一在线综合在线| 亚洲午夜久久久久久久久电影网| 久久综合九色综合久99| 亚洲一区二区三区四区视频| 久久久国产午夜精品| 国产日韩欧美在线观看| 最近看过的日韩成人| 欧美一区二区三区的| 一区二区三区四区五区在线| 鲁鲁狠狠狠7777一区二区| 国产精品中文在线| 午夜日韩在线| 亚洲女同同性videoxma| 欧美视频在线观看视频极品| 欧美在线免费观看亚洲| 国产精品嫩草99av在线| 国产精品国产三级国产普通话99| 欧美aⅴ一区二区三区视频| 国产亚洲精品久久飘花| 亚洲一区二区伦理| 在线免费高清一区二区三区| 裸体歌舞表演一区二区| 激情久久五月| 欧美性开放视频| 亚洲一区制服诱惑| 一本一道久久综合狠狠老精东影业| 欧美影院一区| 日韩一区二区精品在线观看| 久久全球大尺度高清视频| 欧美影视一区| 亚洲人www| 亚洲精品视频在线观看网站| 国产精品乱子久久久久| 亚洲伦理在线| 亚洲精品美女免费| 亚洲第一搞黄网站| 日韩一级片网址| 国产精品另类一区| 欧美成人精品一区| 欧美精品福利在线| 欧美xxxx在线观看| 国产精品毛片va一区二区三区| 欧美91福利在线观看| 欧美性做爰猛烈叫床潮| 久久精品一区| 亚洲美女电影在线| 国产欧美午夜| 欧美久久综合| 久久日韩精品| 午夜性色一区二区三区免费视频| 欧美成人嫩草网站| 亚洲国产婷婷香蕉久久久久久99 | 香蕉亚洲视频| 国产精品三上| 久久动漫亚洲| 国产精品久久久久久av福利软件 | 欧美日韩久久不卡| 亚洲精品亚洲人成人网| 中文亚洲欧美| 国产精品日韩久久久久| 久久黄色级2电影| 欧美国产日韩a欧美在线观看| 亚洲人成人一区二区三区| 国产精品二区影院| 欧美成人中文字幕在线| 亚洲欧美国产毛片在线| 久久久不卡网国产精品一区| 亚洲国产视频一区| 国产亚洲精品v| 国产精品二区在线| 欧美午夜精品一区二区三区| 久久综合久久综合这里只有精品| 日韩视频免费| 亚洲精品一区二区三区四区高清| 亚洲欧美精品中文字幕在线| 亚洲精品一二三| 亚洲国产清纯| 亚洲电影av在线| 伊人久久av导航| 黄色成人av网| 精品成人久久| 在线观看亚洲视频| 亚洲国产国产亚洲一二三| 国产亚洲综合在线| 韩国成人精品a∨在线观看| 国产视频一区二区三区在线观看| 国产精品一二三视频| 国产精品免费看片| 国产亚洲欧美在线| 在线日韩日本国产亚洲| 亚洲精品日韩激情在线电影| 亚洲午夜精品福利| 日韩视频免费观看高清在线视频 | 亚洲一区二区视频在线| 亚洲免费久久| 欧美自拍偷拍| 欧美大片网址| 一区二区三区国产在线| 午夜在线电影亚洲一区| 亚洲国产成人在线| 亚洲一区二区免费| 久久在线视频| 亚洲精品国精品久久99热一| 国内精品模特av私拍在线观看| 激情综合久久| 午夜视频在线观看一区| 欧美福利一区| 久久视频在线看| 国产精品入口麻豆原神| 亚洲精品1区2区| 久久永久免费| 午夜精品一区二区三区在线| 欧美电影免费观看| 亚洲第一在线视频| 亚洲福利在线观看| 午夜在线成人av| 国产区日韩欧美| 欧美一区二区福利在线| 亚洲精品123区| 久久久777| 亚洲香蕉网站| 欧美风情在线观看| 欧美日韩另类视频| 久久精品视频在线观看| 欧美大学生性色视频| 日韩一区二区高清| 亚洲精品乱码久久久久久黑人| 欧美第一黄色网| 亚洲欧美国产日韩中文字幕| 欧美一区二区三区男人的天堂| 国产精品进线69影院| 免费成人高清视频| 亚洲国产成人久久| 亚洲人成网站999久久久综合| 欧美精品一区二区三区一线天视频 | 香蕉久久夜色| 欧美国产极速在线| 亚洲风情在线资源站| 免费人成精品欧美精品| 中国av一区| 麻豆精品传媒视频| 久久久美女艺术照精彩视频福利播放| 亚洲欧美一区二区三区久久| 一区二区亚洲欧洲国产日韩| 欧美福利一区二区| 国产精品影视天天线| 久久综合成人精品亚洲另类欧美 | 亚洲一级在线| 久久久精品国产99久久精品芒果| 99ri日韩精品视频| 免费一区视频| 久久se精品一区二区| 欧美成人精精品一区二区频| 亚洲欧美伊人| 欧美午夜一区二区| 久久成人国产| 欧美aa在线视频| av不卡在线观看| 国产一区二区三区观看 | 久久午夜羞羞影院免费观看| 亚洲精品国产精品乱码不99 | 国产精品一区二区在线观看不卡| 国产欧美日韩三区| 亚洲美女诱惑| 亚洲精品一区二区三区婷婷月| 欧美一区二区三区四区高清| 亚洲一区二区黄色| 亚洲免费av网站| 国产精品日韩在线一区| 亚洲美女福利视频网站| 日韩一区二区精品在线观看| 老鸭窝毛片一区二区三区| 久久视频免费观看| 亚洲国产精品成人| 久久综合中文色婷婷|