遺失libempty_armeabi.so文件的網(wǎng)友的不用慌張,大家可以到騰牛網(wǎng)免費(fèi)下載,能夠搞定Linux電腦中缺少該文件無法打開某程序的問題。
.so文件是Linux下的程序函數(shù)庫,即編譯好的可以供其他程序使用的代碼和數(shù)據(jù)
linux下何謂.so文件:
1. 用過windows的同學(xué)應(yīng)該都知道 .dll文件吧, 這二者有什么共通之處呢,其實(shí) .so文件就跟.dll文件差不多.//
2.一般來說.so文件就是常說的動態(tài)鏈接庫, 都是C或C++編譯出來的。與Java比較就是:它通常是用的Class文件(字節(jié)碼).//
3.Linux下的.so文件時不能直接運(yùn)行的,一般來講,.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 該選項(xiàng)指定生成動態(tài)連接庫(讓連接器生成T類型的導(dǎo)出符號表,有時候也生成弱連接W類型的導(dǎo)出符號),不用該標(biāo)志外部程序無法連接。相當(dāng)于一個可執(zhí)行文件)
(-fPIC:表示編譯為位置獨(dú)立的代碼,不用此選項(xiàng)的話編譯后的代碼是位置相關(guān)的所以動態(tài)載入時是通過代碼拷貝的方式來滿足不同進(jìn)程的需要,而不能達(dá)到真正代碼段共享的目的。)
(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ù)的。)
.so文件是Linux下的程序函數(shù)庫,即編譯好的可以供其他程序使用的代碼和數(shù)據(jù)linux下何謂.so文件:1.用過windows的同學(xué)應(yīng)該都知道.dll文件吧,這二者有什么共通之處呢,其實(shí).so文件就跟.dll文件差不多.//2.一般來說.so文件
關(guān)于騰牛 | 聯(lián)系方式 | 發(fā)展歷程 | 版權(quán)聲明 | 下載幫助(?) | 廣告聯(lián)系 | 網(wǎng)站地圖 | 友情鏈接
Copyright 2005-2022 QQTN.com 【騰牛網(wǎng)】 版權(quán)所有 鄂ICP備2022005668號-1 | 鄂公網(wǎng)安備 42011102000260號
聲明:本站非騰訊QQ官方網(wǎng)站 所有軟件和文章來自互聯(lián)網(wǎng) 如有異議 請與本站聯(lián)系 本站為非贏利性網(wǎng)站 不接受任何贊助和廣告