<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 學習電腦 > 操作系統 > Linux教程 >

        Linux庫文件是什么有什么用

        時間: 加城1195 分享

          Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。其中一個重要概念就是庫文件,這篇文章主要介紹了Linux的庫文件的相關內容,小編覺得很不錯,在這里分享給大家。希望給大家一個參考。

          1. 什么是庫

          在windows平臺和linux平臺下都存在著大量的庫。

          本質上來說庫是一種可執行代碼的二進制形式,可以被操作系統載入內存執行。

          由于windows和linux的本質不同,因此二者庫的二進制是不兼容的。

          2. 庫的種類

          linux下的庫有兩種:靜態庫和共享庫(動態庫)。

          二者的不同點在于代碼被載入的時刻不同。

          靜態庫的代碼在編譯過程中已經被載入可執行程序,因此體積較大。共享庫的代碼是在可執行程序運行時才載入內存的,在編譯過程中僅簡單的引用,因此代碼體積較小。對于靜態庫和動態庫的選擇,需要結合二者的優缺點折中考慮。一般來說,比較通用的庫,應該做成共享庫。

          3.庫存在的意義

          庫是別人寫好的現有的,成熟的,可以復用的代碼,你可以使用但要記得遵守許可協議。

          現實中每個程序都要依賴很多基礎的底層庫,不可能每個人的代碼都從零開始,因此庫的存在意義非同尋常。共享庫的好處是,不同的應用程序如果調用相同的庫,那么 在內存里只需要有一 份該共享庫的實例。

          4. 庫文件在linux下是如何生成的

          靜態庫的后綴是.a,它的產生分兩步

          Step 1:由源文件編譯生成一堆.o,每個.o里都包含這個編譯單元的符號表;

          Step 2:ar命令將很多.o轉換成.a,成為靜態庫;

          動態庫的后綴是.so,它由gcc加特定參數編譯產生。

          例如: $ gcc -fPIC -c *.c $ gcc -shared -Wl,-soname, libfoo.so.1 -o libfoo.so.1.0 *.

          5. 庫文件是如何命名的,有沒有什么規范

          在linux下,庫文件一般放在/usr/lib和/lib下,

          靜態庫的名字一般為libxxxx.a,其中xxxx是該lib的名稱

          動態庫的名字一般為libxxxx.so.major.minor,xxxx是該lib的名稱,major是主版本號, minor是副版本號

          6. 如何知道一個可執行程序依賴哪些庫

          ldd命令可以查看一個可執行程序依賴的共享庫,

          例如# ldd /bin/lnlibc.so.6

          => /lib/libc.so.6 (0×40021000)/lib/ld-linux.so.2

          => /lib/ld- linux.so.2 (0×40000000)

          可以看到ln命令依賴于libc庫和ld-linux庫

          7. 可執行程序在執行的時候如何定位共享庫文件

          靜態庫:生成可執行文件時,靜態庫已經作為自身一部分鏈接進了可執行文件中,故執行時不需要再定位,也就是說再不依賴于庫文件;

          動態庫:需要知道動態庫的路徑,參考另一篇博客;

          8. 在新安裝一個庫之后如何讓系統能夠找到他

          如果安裝在/lib或者/usr/lib下,那么ld默認能夠找到,無需其他操作。

          如果安裝在其他目錄,需要將其添加到/etc/ld.so.cache文件中,步驟如下:

          1. 編輯/etc/ld.so.conf文件,加入庫文件所在目錄的路徑;

          2. 運行ldconfig,該命令會重建/etc/ld.so.cache文件;

          3. ldconfig命令需要root權限;

          補充:Linux基本命令

          ①ls 意為list 列出當前文件夾中的文件

          -l 顯示文件的屬性 可用ll來表示

          ②alias 別名 看看是否有別名的文件

          ③cd dir 跳躍目錄 -P選項 將路徑中的鏈接文件替換成鏈接指向的文件路徑

          ④pwd 查看當前工作的文件夾名 使用-P的選項,會直接進入到其中,相當于cd

          相關閱讀:Linuxshell腳本不執行問題實例分析

          shell腳本不執行問題:某天研發某同事找我說幫他看看他寫的shell腳本,死活不執行,報錯。我看了下,腳本很簡單,也沒有常規性的錯誤,報“:badinterpreter:Nosuchfileordirectory”錯。看這錯,我就問他是不是在windows下編寫的腳本,然后在上傳到linux服務器的……果然。原因:在DOS/windows里,文本文件的換行符為rn,而在*nix系統里則為n,所以DOS/Windows里編輯過的文本文件到了*nix里,每一行都多了個^M。解決:

          1)重新在linux下編寫腳本;

          2)vi:%s/r//g:%s/^M//g(^M輸入用Ctrl+v,Ctrl+m)附:sh-x腳本文件名,可以單步執行并回顯結果,有助于排查復雜腳本問題。


        Linux庫文件相關文章:

        1.linux下mysql導入sql文件命令

        2.linux的scp命令

        3.linux安裝jar命令

        4.Linux系統中查看文件內容的命令總結

        5.linux中ftp下載文件命令的用法

        4016883 主站蜘蛛池模板: 中文字幕在线日韩| 亚洲国产成人精品女人久| 国产999精品2卡3卡4卡| 免费人成视频在线观看网站| 国产一区二区av天堂热| 久久夜夜免费视频| 亚洲国产成人无码AV在线影院L| 九九热在线观看视频精品| 日本精品人妻无码77777| 欧美视频免费一区二区三区| 国产对白老熟女正在播放| 亚洲天堂av日韩精品| 天天澡日日澡狠狠欧美老妇| 欧美成A高清在线观看| 91老肥熟女九色老女人| av天堂亚洲区无码先锋影音| 国内精品久久人妻无码不卡| 十四以下岁毛片带血a级| 亚洲av成人无码网站| 亚洲最新版无码AV| 久久婷婷国产精品香蕉| 亚洲日韩精品制服丝袜AV| 国产精品高清国产三级囯产AV| 成人免费无码视频在线网站| 国产精品亚洲中文字幕| 亚洲日韩精品无码一区二区三区| 欧美日韩国产综合草草| 亚洲av成人在线一区| 日韩高清不卡免费一区二区| 亚洲欧洲日产国产av无码| 中文字幕少妇人妻精品| 岛国最新亚洲伦理成人| 国产精品片在线观看手机版| 婷婷五月综合丁香在线| 久久精品国产亚洲综合av| 久久99精品久久久久久齐齐| 国产二区三区不卡免费| 天天爽夜夜爱| 丁香色欲久久久久久综合网| 无码人妻斩一区二区三区| 99香蕉国产精品偷在线观看|