linux so庫產生(一),linuxso庫產生

來源:互聯網
上載者:User

linux so庫產生(一),linuxso庫產生

Dear!

先貼個福士版,希望逐字理解,有益!

$gcc -shared -Wl,-soname,libhello.so.1 -o libhello.so.1.0 hello.o另外再建立兩個符號串連:$ln -s libhello.so.1.0 libhello.so.1$ln -s libhello.so.1 libhello.so這樣一個libhello的動態串連庫就產生了。最重要的是傳gcc -shared 參數使其產生是動態庫而不是普通執行程式。 -Wl 表示後面的參數也就是-soname,libhello.so.1直接傳給連接器ld進行處理。實際上,每一個庫都有一個soname,當連接器發現它正在尋找的程式庫中有這樣一個名稱,連接器便會將soname嵌入連結中的二進位檔案內,而不是它正在啟動並執行實際檔案名稱,在程式執行期間,程式會尋找擁有 soname名字的檔案,而不是庫的檔案名稱,換句話說,soname是庫的區分標誌。 這樣做的目的主要是允許系統中多個版本的庫檔案共存,習慣上在命名庫檔案的時候通常與soname相同 libxxxx.so.major.minor 其中,xxxx是庫的名字,major是主要版本號,minor 是次版本號碼

Do you understand?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.