强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁 > 廠商 > 知識 > 靜態(tài)庫,計算機靜態(tài)庫

靜態(tài)庫,計算機靜態(tài)庫

來源:整理 時間:2023-09-06 18:27:16 編輯:智能門戶 手機版

本文目錄一覽

1,計算機靜態(tài)庫

靜態(tài)庫是指在我們的應(yīng)用中,有一些公共代碼是需要反復(fù)使用,就把這些代碼編譯為"庫"文件;在鏈接步驟中,連接器將從庫文件取得所需的代碼,復(fù)制到生成的可執(zhí)行文件中的這種庫。

計算機靜態(tài)庫

2,什么是iPhone SDK中的靜態(tài)庫

http://en.wikipedia.org/wiki/Static_library
就是把函數(shù)封裝成一個庫,以.a結(jié)尾,然后將這個庫導(dǎo)入新的工程里,可以直接調(diào)用它的方法。

什么是iPhone SDK中的靜態(tài)庫

3,怎么創(chuàng)建靜態(tài)庫工程

看看這個帖子:http://www.devdiv.com/forum.php?mod=viewthread&tid=132999多工程聯(lián)編設(shè)置
感覺不成功主要是因為引入問題。

怎么創(chuàng)建靜態(tài)庫工程

4,請問靜態(tài)庫和動態(tài)鏈接庫有什么區(qū)別各有什么用

簡單來說 靜態(tài)庫 編譯完 之后 就一個光光 exe動態(tài)庫編譯完 之后 是要 一個exe 和這個dll同時在 才能運行。好處?dll可以動態(tài)加載,也可以被多個程序調(diào)用,lib庫 存在版本必須一致的問題,例如2008的代碼 連接的時候 必須要連接 2008編譯出來的lib庫,而dll 或許 不需要這么強制對應(yīng)。

5,什么叫靜態(tài)庫和動態(tài)庫

靜態(tài)庫是編寫的時候加載進源代碼進行編譯的,如各種頭文件。動態(tài)庫是在程序運行的時候映射進程序的內(nèi)存空間進行動態(tài)加載的,如DLL文件。
程序編譯一般需經(jīng)預(yù)處理、編譯、匯編和鏈接幾個步驟。在應(yīng)用中,有一些公共代碼是需要反復(fù)使用,就把這些代碼編譯為“庫”文件;在鏈接步驟中,連接器將從庫文件取得所需的代碼,復(fù)制到生成的可執(zhí)行文件中。這種庫稱為靜態(tài)庫,其特點是可執(zhí)行文件中包含了庫代碼的一份完整拷貝;缺點就是被多次使用就會有多份冗余拷貝?! 討B(tài)庫又稱動態(tài)鏈接庫英文為DLL,是Dynamic Link Library 的縮寫形式,DLL是一個包含可由多個程序同時使用的代碼和數(shù)據(jù)的庫,DLL不是可執(zhí)行文件。動態(tài)鏈接提供了一種方法,使進程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于一個 DLL 中,該 DLL 包含一個或多個已被編譯、鏈接并與使用它們的進程分開存儲的函數(shù)。DLL 還有助于共享數(shù)據(jù)和資源。多個應(yīng)用程序可同時訪問內(nèi)存中單個DLL 副本的內(nèi)容。DLL 是一個包含可由多個程序同時使用的代碼和數(shù)據(jù)的庫。Windows下動態(tài)庫為.dll后綴,在linux在為.so后綴?! §o態(tài)庫和動態(tài)庫是兩種共享程序代碼的方式,它們的區(qū)別是:靜態(tài)庫在程序的鏈接階段被復(fù)制到了程序中,和程序運行的時候沒有關(guān)系;動態(tài)庫在鏈接階段沒有被復(fù)制到程序中,而是程序在運行時由系統(tǒng)動態(tài)加載到內(nèi)存中供程序調(diào)用。使用動態(tài)庫的優(yōu)點是系統(tǒng)只需載入一次動態(tài)庫,不同的程序可以得到內(nèi)存中相同的動態(tài)庫的副本,因此節(jié)省了很多內(nèi)存。

6,Linux中如何創(chuàng)建靜態(tài)庫和動態(tài)庫

靜態(tài)庫在程序編譯時會被連接到目標(biāo)代碼中,程序運行時將不再需要該靜態(tài)庫。 動態(tài)庫在程序編譯時并不會被連接到目標(biāo)代碼中,而是在程序運行是才被載入,因此在程序運行時還需要動態(tài)庫存在。 程序1: hello.h #ifndef HELLO_H #define HELLO_H void hello(const char *name); #endif //HELLO_H 程序2: hello.c #include void hello(const char *name) { printf("Hello %s!\n", name); } 程序3: main.c #include "hello.h" int main() { hello("everyone"); return 0; } 無論動態(tài)庫還是靜態(tài)庫都需要用到.o文件來生成,先編譯生成.o文件。 # gcc -c hello.c 1:創(chuàng)建靜態(tài)庫 靜態(tài)庫文件名的命名規(guī)范是以lib為前綴,緊接著跟靜態(tài)庫名,擴展名為.a。例如:我們將創(chuàng)建的靜態(tài)庫名為myhello,則靜態(tài)庫文件名就是libmyhello.a。 # ar cr libmyhello.a hello.o 使用靜態(tài)庫:只需要在你的源程序中加入包含你所需要使用到的函數(shù)的聲明(即包含頭文件),然后在gcc生成目標(biāo)文件時候指明靜態(tài)庫就OK了(除非你包含的頭文件在/usr/include,庫文件在標(biāo)準(zhǔn)庫/usr/lib,/lib下,否則你得顯示指明他們的路徑) # gcc -o hello main.c -L. -lmyhello # ./hello Hello everyone! 刪除靜態(tài)庫文件運行./hello,程序正常運行,說明靜態(tài)庫公用函數(shù)已經(jīng)鏈接到目標(biāo)文件。 2: 利用.o文件創(chuàng)建動態(tài)庫 動態(tài)庫文件擴展名為.so。 # gcc -shared -fPCI -o libmyhello.so hello.o 動態(tài)庫的使用與靜態(tài)庫使用方式一樣 # gcc -o hello main.c -L. -lmyhello # ./hello ./hello: error while loading shared libraries: libmyhello.so: cannot open shared object file: No such file or directory 哦!出錯了。快看看錯誤提示,原來是找不到動態(tài)庫文件libmyhello.so。程序在運行時,會在/usr/lib和/lib等目錄中查找需要的動態(tài)庫文件。若找到,則載入動態(tài)庫,否則將提示類似上述錯誤而終止程序運行。
文章TAG:靜態(tài)庫計算機靜態(tài)庫

最近更新

  • 主減速器的作用,主減速器起什么作用有哪幾種形式主減速器的作用,主減速器起什么作用有哪幾種形式

    主減速器起什么作用有哪幾種形式2,主減速器的功用是什么3,主減速器的作用有那些4,主減速器的作用是什么5,主減速器的作用是變速機可以減速也可以增速傳動6,汽車上為什么要使用主減速器1,主減.....

    知識 日期:2023-09-06

  • 防水機器人材料,有沒有防水機器人防水機器人材料,有沒有防水機器人

    機器人防護服防水有什么作用?水下機器人短時間內(nèi)是不可能實現(xiàn)的,水下機器人的操作難度很大。首先要有絕對防水材料production機器人,不能有漏,搜索機器人防水如何搜索機器人具有一定性能防.....

    知識 日期:2023-09-06

  • 對接焊縫,什么叫對界焊縫對接焊縫,什么叫對界焊縫

    什么叫對界焊縫2,什么是單面施焊對接焊縫3,全斷面對接焊縫是什么意思4,采用不同焊接順序的對接焊縫方法有哪幾種5,對接焊縫的區(qū)分6,什么是對縫焊接1,什么叫對界焊縫兩塊焊板采用對接方法焊出.....

    知識 日期:2023-09-06

  • 定義字符串,變量聲明中怎樣定義字符串定義字符串,變量聲明中怎樣定義字符串

    變量聲明中怎樣定義字符串2,定義一個字符串輸入一串字符使其成為一個字符串當(dāng)達(dá)到數(shù)組3,如何定義定義的字符串1,變量聲明中怎樣定義字符串這是C++聲明方式#includestringstr1;然后在函數(shù).....

    知識 日期:2023-09-06

  • 沙漠種樹機器人,去沙漠種樹國家給錢嗎沙漠種樹機器人,去沙漠種樹國家給錢嗎

    沙漠機器人地下管線旁。所以這個機器人是不需要收費的,”“這是機器人?這個機器人看起來像人,它會走路、說話和吃東西,機器人二年級作文1我家有一個機器人掃地機。他小巧玲瓏,橘黃色的身體,.....

    知識 日期:2023-09-06

  • cr2016,紐扣電池cr2016多少錢紐扣電池cr2016怎么樣cr2016,紐扣電池cr2016多少錢紐扣電池cr2016怎么樣

    紐扣電池cr2016多少錢紐扣電池cr2016怎么樣2,請教一下佳能A310的那個CR2016鋰電池有什么用如果沒電了是3,本田CRV2016款20L兩驅(qū)都市版怎么樣4,本田CRV2016款20L兩驅(qū)經(jīng)典版怎么樣5,天美時手.....

    知識 日期:2023-09-06

  • pcm設(shè)備,什么是PCM復(fù)用設(shè)備它的主要用處它和SDH設(shè)備的區(qū)別  問pcm設(shè)備,什么是PCM復(fù)用設(shè)備它的主要用處它和SDH設(shè)備的區(qū)別 問

    什么是PCM復(fù)用設(shè)備它的主要用處它和SDH設(shè)備的區(qū)別問2,PCM設(shè)備是什么3,pcm是什么設(shè)備是否屬于將語音信號轉(zhuǎn)成光信號的設(shè)備4,PCM設(shè)備的介紹5,PCM設(shè)備指的是什么設(shè)備6,PCM設(shè)備和PDH設(shè)備有什么.....

    知識 日期:2023-09-06

  • 小米4手機怎么連接電腦數(shù)據(jù)傳輸,小米手機USB連接電腦沒反應(yīng)小米4手機怎么連接電腦數(shù)據(jù)傳輸,小米手機USB連接電腦沒反應(yīng)

    小米How連接電腦小米手機How連接-。小米4Why連接電腦?小米4Why連接電腦?小米4Why連接電腦?小米4Why連接電腦?小米4Why連接電腦?電腦不聯(lián)網(wǎng)怎么互相傳輸文件小米4手機通過數(shù)據(jù)線-3電腦?小米手.....

    知識 日期:2023-09-06