在线亚洲黄色-在线亚洲观看-在线亚洲电影-在线亚洲成人-岛国大片在线观看免费版-岛国大片在线播放高清

Linux下靜態庫生成和使用

導讀一.靜態庫概念1.庫是預編譯的目標文件(object ; ;files)的集合,它們可以被鏈接進程序。靜態庫以后綴為”.a”的特殊的存檔(archive ;file)存儲。2.標準系統庫可在目錄/usr。b與;b中找到。比如,在類Unix系統中C語言的數序庫一般存儲為文件/usr。b;bm.a。該庫中函數的原型聲明在頭文件/usr/include/math.h中。3.C標準庫本身存儲為/usr。b;bc.a,它包含ANS1/ISO標準指定的函數,比如printf。對每一個C程序來說,libc.a都默認被鏈接。4.一個事例:在tiger.c程序中調用一個數學庫libm.a中sin函數。

系統大全為您提供一.靜態庫概念1.庫是預編譯的目標文件(object??files)的集合,它們可以被鏈接進程序。靜態庫以后綴為”.a”的特殊的存檔(archive?file)存儲。2.標準系統庫可在目錄/usrb與b中找到。比如,在類Unix系統中C語言的數序庫一般存儲為文件/usrbbm.a。該庫中函數的原型聲明在頭文件/usr/include/math.h中。3.C標準庫本身存儲為/usrbbc.a,它包含ANS1/ISO標準指定的函數,比如printf。對每一個C程序來說,libc.a都默認被鏈接。4.一個事例:在tiger.c程序中調用一個數學庫libm.a中sin函數。#include#includeint??main(){?????????double??x?=?2.0;?????????double?y?=?sin(x);?????????printf(“the?result:%f”,y);?????????return?0;}?如果直接使用gcc?tiger.c則會出現錯誤:undefined??reference?to?‘sin’;1>函數sin(),未在本程序中定義也不在默認庫’libc.a’中,除非被指定,編譯器也不會鏈接’libm.a’。2>為使編譯器能將sin()鏈接進主程序‘test.c’,需要提供數學庫’libm.a’.。3>使用方法:gcc??tiger.c?/usrbbm.a??-o?tiger則可以編譯通過。為了避免在命令行中指定長的路徑,編譯器為鏈接函數庫提供了快捷的選項“-l”。因此可以使用下面的方法:gcc??tiger.c?-lm?–o?tiger注:選項-lNAME使用連接器嘗試鏈接系統庫目錄中的函數庫文件libNAME.a。?二.生成和使用靜態庫1.靜態庫是obj文件的一個集合,通常靜態庫以”.a”為后綴。靜態庫由程序ar生成。2.靜態庫的優點是可以在不用重新編譯程序庫代碼的情況下,進行程序的重新鏈接,這種方法節省了編譯過程的時間(在編譯大型程序的時候,需要花費很長的時間)。靜態庫的另一個優點是開發者可以提供庫文件給使用的人員,不用開放源代碼,這是庫函數提供者經常采用的手段。3.通過一個實例來了解如何自己生成靜態庫和使用靜態庫首先生成靜態庫1>在test文件夾下有三個文件:main.c?,tiger.c,tiger.h;a.?main.c文件中的內容:#include#include”tiger.h”?????//注意include該文件,并不是僅鏈入.a文件即可int??main(void){???????printf(“sum=%d”,add(3,5));???????return?0;???????}b.tiger.h文件中的內容:#ifndef?__TIGER__#define?__TIGER__int??add(int??a,int?b);#endifc.tiger.c文件中的內容int??add(int??a,int?b){????????return?a+b;}2>創建靜態庫的最基本步驟是生成目標文件tiger.ogcc??-o?tiger.o??-c??tiger.c3>然后生成靜態庫libadd.a:ar??-rcs?libadd.a??tiger.o????其次使用靜態庫1>使用gcc命令帶上庫文件就OK了???gcc??-o??main?main.c??libadd.a2>?也可以使用命令”-l庫名”進行,庫名是不包含庫函數庫和擴展名的字符串。???gcc??-o??main??main.c?-ladd上面的命令執行完后,系統返回:Cannot??find?–ladd說明:上面的命令將在系統默認的路徑西安查找add函數庫,并把他鏈接到要生成的目標程序上。系統提示沒有找到庫文件add,這是由于add庫函數沒有在系統默認的查找路徑下,我們需要認為指定庫函數的路徑,例如:庫文件和當前編譯文件在同一目錄下:????gcc??-o?main??main.c?-L??./??-ladd系統就能正常生成可執行文件。說明:???????在使用-l選項時,-o選項的目的名要在-l鏈接的庫名之前,否則gcc會認為-l是生成的目標而出錯。????以上就是系統大全給大家介紹的如何使的方法都有一定的了解了吧,好了,如果大家還想了解更多的資訊,那就趕緊點擊系統大全官網吧。??本文來自系統大全http:///如需轉載請注明!推薦:win7純凈版

為你推薦
資訊專欄
熱門視頻
相關推薦
電腦技術cacti安裝與配置 win8系統WiFi萬能鑰匙無法打開怎么辦 Linux在所有文件中查找和替換 2345看圖王系統阻止運行怎么辦2345看圖王系統阻 怎么徹底刪除Win8Metro清除Win8Metro應用教程 Linux中的free命令 Linux下常用的壓縮與解壓命令 電腦不能打字是怎么辦鍵盤無法輸入文字怎么 每天一個Linux命令32gzip命令 Linuxc獲取本機IP的方法 Windows10系統全新的窗口陰影效果搶先看 必看的100個常用linux命令 linux內核的編譯 linux句柄泄露問題查看 Linux內核3145最新版發布 Windows和linux雙系統修改默認啟動順序 使用迅雷下載文件時提示應版權方要求文件無 Ubuntu中保存iptables防火墻規則的例子 linux下run文件如何安裝與卸載 linuxssh免密碼登陸 linuxubuntu1204卸載和安裝mysql win8下cmd在哪cmd怎么樣以管理員身份運行 linuxapr安裝 在Windows下安裝Ubantu的愉快體驗 Windows81運行龍之谷游戲出現藍屏問題的處理辦法 Linux文件系統損壞原因分析及修復方法 網易云音樂播放失敗請在設置中切換輸出設備 新Win81商店上線Win8應用數量破16萬 Win8如何設置禁止遠程修改注冊表以提高系統安全 Linuxarping命令測試IP地址沖突 Windows8無法設置靜態IP地址方法 91助手備份文件在哪91助手備份文件的保存位置 KB2770917補丁windows8系統中無法更新的辦法處理 linux系統怎么用SecureCRT上傳和下載文件 巧用網絡配置快速解決windows7統無法上網的問題 win8系統更改共享設置的方法 win8和win81關閉快速啟動的辦法介紹 Win8電腦利用路由器限制網速的方法 深度win864位系統安裝mssql2005時啟動服務失敗怎么 Linux硬件信息查詢命令2
Top 主站蜘蛛池模板: er久99久热只有精品国产 | 成人欧美一区二区三区 | 亚洲最新视频 | 欧美在线观看视频 | 欧美韩日在线 | 久久精品无码一区二区日韩av | 国产在线a | 日韩欧美精品一区二区三区 | 欧美嫩交 | 国产色综合久久无码有码 | 亚洲 欧美 中文 日韩专区 | 国产精品特级毛片一区二区三区 | 国产精品久久久久影院 | 国产成人综合精品一区 | 日韩专区在线播放 | xx中文字幕乱偷avxx | 欧美在线免费看 | 久久久久国产精品美女毛片 | 久久久久免费精品国产小说 | 亚洲国产精品免费视频 | 国产精品视频一区二区三区w | 岛国大片在线观看 | 九九精品免视看国产成人 | 久久激情综合网 | 大陆国产精品视频 | 亚洲国产精品免费 | 欧美日韩国产在线 | 国产毛片久久久久久国产毛片 | 欧美最猛性xxxxx动态图 | 在线免费观看国产 | 日韩欧美制服 | 国产精品免费_区二区三区观看 | 国产欧美在线观看一区二区 | 一级成人a免费视频 | 亚洲欧美综合视频 | 亚洲精品高清国产一久久 | 九九久久亚洲综合久久久 | 91国内精品久久久久影院优播 | 日韩精品一区二区三区国语自制 | 亚洲精品国产成人99久久 | 日韩资源|