国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
關(guān)于.so 文件的認識
linux下何謂.so文件:1. 用過windows的同學(xué)應(yīng)該都知道 .dll文件吧, 這二者有什么共通之處呢,其實 .so文件就跟.dll文件差不多.//
2.一般來說.so文件就是常說的動態(tài)鏈接庫, 都是C或C++編譯出來的。與Java比較就是:它通常是用的Class文件(字節(jié)碼).//
3.Linux下的.so文件時不能直接運行的,一般來講,.so文件稱為共享庫.//
4.那么.so文件是怎么用的呢?
for example:(1)動態(tài)庫的編譯
這里有一個頭文件:so_test.h,三個.c文件:test_a.c、test_b.c、test_c.c,我們將這幾個文件編譯成一個動態(tài)庫:libtest.so。
命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so
參考2:都是由C或C++編譯出來的
-shared 該選項指定生成動態(tài)連接庫(讓連接器生成T類型的導(dǎo)出符號表,有時候也生成弱連接W類型的導(dǎo)出符號),不用該標(biāo)志外部程序無法連接。相當(dāng)于一個可執(zhí)行文件
-fPIC:表示編譯為位置獨立的代碼,不用此選項的話編譯后的代碼是位置相關(guān)的所以動態(tài)載入時是通過代碼拷貝的方式來滿足不同進程的需要,而不能達到真正代碼段共享的目的。
(2)動態(tài)庫的鏈接
這里有個程序源文件 test.c 與動態(tài)庫 libtest.so 鏈接生成執(zhí)行文件 test:
命令:$ gcc test.c -L. -ltest -o test
注:測試是否動態(tài)連接,如果列出libtest.so,那么應(yīng)該是連接正常了
-L.:表示要連接的庫在當(dāng)前目錄中
-ltest:編譯器查找動態(tài)連接庫時有隱含的命名規(guī)則,即在給出的名字前面加上lib,后面加上.so來確定庫的名稱
命令:$ ldd test
(注:執(zhí)行test,可以看到它是如何調(diào)用動態(tài)庫中的函數(shù)的。

Ok, That's all !
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Unity與 SO 交互 ??| .so文件(動態(tài)鏈接庫 ) 基礎(chǔ)知識科普
靜態(tài)庫&動態(tài)庫
Linux下靜態(tài)鏈接庫和動態(tài)鏈接庫的使用
動態(tài)鏈接庫*.so的編譯與使用
Linux下編寫簡單的動態(tài)庫.靜態(tài)庫
函數(shù)庫:靜態(tài)庫和動態(tài)庫
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服