日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux中动态链接库用扩展名,Linux操作系统下动态库的生成及链接方法是什么?...

發布時間:2023/12/18 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux中动态链接库用扩展名,Linux操作系统下动态库的生成及链接方法是什么?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux下動態庫文件的擴展名為"。so"(Shared Object)。按照約定,所有動態庫文件名的形式是libname。so(可能在名字中加入版本號)。這樣,線程函數庫被稱作libthread。so。靜態庫的文件名形式是libname。a。

共享archive的文件名形式是libname。sa。共享archive只是一種過渡形式,幫助人們從靜態庫轉變到動態庫。

本文僅以簡單的例子介紹動態庫文件的生成和鏈接方法。

操作系統:Debian/GNU Linux 2。6。21-2-686; GCC版本:4。

1。3

一、庫文件及測試文件代碼

庫文件及測試文件所在的目錄:/home/program/。

1。庫文件名:myfunction。c/*Author: Godbach

E-mail: nylzhaowei@163。com*/#include intmy_lib_function (void){

printf ("Library routine called from libmyfunction。

so!\n");

return 0;}

2。測試文件名:test。c#include int main(void){

my_lib_function();

return 0;}

二、動態庫的編譯方法

編譯庫文件myfunction。

c:debian:/home/program# gcc -shared -o libmyfunction。so myfunction。c

如果編譯成功,會在/home/program/下生成動態庫文件:libmyfunction。so。

這里有兩點需要說明:

1。

對Linux操作,一般都推薦在普通用戶模式下,如果需要超級用戶的權限,則可以通過su root,輸入root用戶密碼切換。我是個人學習使用,同時又有很多的操作都要使用root用戶,因此就直接在root用戶下進行編譯。

2。編譯生成動態庫的命令為:gcc (-fpic) -shared -o libmyfunction。

so myfunction。c

-fpic 使輸出的對象模塊是按照可重定位地址方式生成的。

-shared指定把對應的源文件生成對應的動態鏈接庫文件。

三、動態庫的測試方法

編譯測試文件test。c:debian:/home/program# gcc -o test test。

c /home/program/libmyfunction。so

成功編譯后,生成test文件,運行test:debian:/home/program# 。/test Library routine called from libmyfunction。

so!

其中,gcc -o test test。c /home/program/libmyfunction。so的最后一個參數指定所鏈接庫文件的絕對路徑。本例中庫文件的絕對路徑為:/home/program/libmyfunction。so。

當然,如果想從系統的庫文件路徑(通常系統函數庫的位于/usr/lib下)鏈接動態庫的話,可以先將生成的庫文件拷貝至/usr/lib/下,然后再鏈接:debian:/home/program# cp libmyfunction。so /usr/lib/debian:/home/program# gcc -o test test。

c -lmyfunctiondebian:/home/program# 。/test Library routine called from libmyfunction。so!

這里,對于鏈接的方法作一下解釋。對于gcc -o test test。

c -lmyfunction中最后一個參數-lmyfunction, 可見傳給C編譯器的命令行參數并未提到函數庫的完整路徑名,甚至沒有提到在函數庫目錄中該文件的完整名字!實際上,編譯器被告知根據選項-lmyfunction鏈接到相應的函數庫(/usr/lib下),函數庫的名字是libmyfunction。

so, 也就是說,"lib"部分和文件的擴展名被省略了,但在前面加了一個l。

全部

總結

以上是生活随笔為你收集整理的linux中动态链接库用扩展名,Linux操作系统下动态库的生成及链接方法是什么?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲成年人免费观看 | 青青久视频| 日韩欧美视频一区二区 | 国产在线精品一区二区 | 精品视频久久 | 日日爽天天| 久久久久久一 | 五月婷婷综合久久 | 国产一二三区在线视频 | 亚洲影院一区二区三区 | 蜜桃视频免费网站 | 九色91popny蝌蚪新疆 | 亚洲av无码一区二区三区人 | 713电影免费播放国语 | av在线黄色 | 国产精品久久久久久久免费观看 | 久热国产精品 | 国产一级免费av | 丰满双乳秘书被老板狂揉捏 | 狠狠爱天天干 | 变态 另类 国产 亚洲 | 人妻无码中文字幕 | 日本免费在线视频 | 色女仆影院 | jizz日本18| av性天堂网| 色婷婷亚洲综合 | 成人欧美一区二区三区黑人 | a猛片免费播放 | 成年人爱爱视频 | 亚洲一区有码 | 国产精品一级二级 | 亚洲国产精品99 | 在线视频黄 | 精品视频999 | 色老头综合| 日韩欧美一区视频 | 日本最新中文字幕 | 日韩精品一区二区三区中文字幕 | 成人国产精品免费观看动漫 | 椎名由奈在线观看 | 久久久精品999 | 欧美激情视频在线播放 | 黄色片网站在线 | 1区2区视频 | 欧美日本一道 | www.com久久| 成人午夜网站 | 日日爱886| 天堂www中文在线资源 | 欧美又粗又长又爽做受 | 无码精品一区二区免费 | 久久都是精品 | 亚洲人成电影一区二区在线 | 69xxx国产| 精品日韩制服无码久久久久久 | 国产在线播放一区二区三区 | 九九精品免费视频 | 免费国产91 | 很黄的性视频 | 欧美一级α片 | 久久久久爱 | 激情久久视频 | 白丝校花扒腿让我c | 国产欧美日韩成人 | 国产精品美女久久久久久 | 欧洲亚洲激情 | 亚洲色图狠狠干 | av永久免费在线观看 | 打美女白嫩屁屁网站 | 一二三四区在线 | 视频在线观看免费 | 海角官网 | 免费在线网站 | 国产激情在线播放 | 东方av正在进入 | 浮力影院草草 | 久久成人福利视频 | 色哟哟中文字幕 | 亚洲一区二区三区中文字幕 | 日韩av视屏| 丰满少妇被猛烈进入一区二区 | 欧美爱爱爱 | 亚色综合| 第一章婶婶的性事 | av免费观看大全 | 亚洲加勒比在线 | 国产美女无遮挡免费 | 亚洲gay视频 | 777精品伊人久久久久大香线蕉 | 亚洲国产欧美在线观看 | 久草一本 | 蜜臀久久99精品久久久无需会员 | 超碰偷拍| 韩国三级视频 | 天天天天色| 欧美精品第一页 | 黑人专干日本人xxxx | 国产精品视频一区二区三区在3 |