導航:首頁 > 源碼編譯 > 編譯靜態庫還依賴其它庫

編譯靜態庫還依賴其它庫

發布時間:2024-01-17 01:25:21

㈠ 我編譯A靜態庫的時候依賴了B靜態庫,我編譯的程序依賴A靜態庫和B靜態庫,這樣B靜態庫是不是會有重復的部分

靜態庫在程序的鏈接階段被復制到了程序中。
你用依賴這睜臘個詞。
程序編譯一般需經預處理、編譯、匯編和鏈接幾個步驟。
在鏈接步驟中,靜斗租態庫才會被復制。
因為靜態庫在程序的鏈接階段被復制到了程序中,和程序運行的時候沒有關系。
存在幾個鏈接?
那麼就幾分拷貝。悉銷滑

㈡ OpenCV靜態庫編譯與鏈接

以OpenCV-4.0.0為例說明在Ubuntu環境下的靜態庫編譯與鏈接方法:

opencv依賴第三方的庫,所以當把opencv編譯成靜態庫的時候,注意要把它運行時必要的依賴庫也編譯進來,opencv源碼內有自己的3rdparty,主要有:libjpeg、libpng、libtiff、libzlib、libwebp、libprotobuf、ffmpeg(用到video時編譯)、libgtk(用於顯示界面顯示,伺服器部署不會用到),可以通過cmake -LA來查看配置的編譯信息,再根據信息考慮把opencv的哪些mole編譯進來。

鏈接時指定opencv的靜態庫以及依賴的庫。另外需要注意頭文件的問題,通過CMakeLists把opencv加入項目編譯時,由於opencv編譯完成後要install才會把所用的頭文件集中拷貝到一個地方,所以事先將頭文件拷貝到了項目的opencv目錄下。

㈢ Linux下的靜態庫和動態庫

靜態庫

可以把它想像成是一些代碼的集合,在可執行程序運行前就已經加到了代碼中,成為了執行程序的一部分,一般是以.a為後綴的文件名,Windows下後綴為.lib。靜態庫的命名也分為三部分,1、前綴:lib,2、庫的名稱:隨意,如lisi,3、後綴:.a。

靜態庫優缺點

上面簡單介紹了靜態庫,那它自然也會有優缺點,這里來介紹下它的優缺點。

優點:1、在最後,函數庫是被打包到應用程序中的,實現函數本地化、定址方便、高效。2、程序在運行的時候,與函數庫沒有關系,移植性更強。

缺點:1、消耗資源較大,每個進程在使用靜態庫的時候,都要復制一份才可以,這也就造成了內存的消耗。2、在程序更新、部署、發布的時候,使用靜態庫相對麻煩,如果一個靜態庫更新了,那它的應用程序都需要重新編譯,再發送給用戶,有的時候可能只是一個小的改動,但對於用戶來說,會導致整個程序重新下載。

動態庫

在程序編譯時不會被連接到目標代碼中,在後期運行時才會載入,不同的應用程序如果調用相同的庫,內存中只有一份共享庫的拷貝,也就避免了空間的浪費問題。一般以.so作為文件後綴名,也分為三部分:1、前綴:lib,2、庫名稱:自定義,3、後綴:.so

動態庫優缺點

優點:1、節省內存2、部署、升級相對方便,只需要更換動態庫,再重新啟動服務即可。

缺點:1、載入速度比靜態庫慢2、移植性較差,需要把所有用到的動態庫進行移植。

閱讀全文

與編譯靜態庫還依賴其它庫相關的資料

熱點內容
lua中的android 瀏覽:441
加密貴還是植發貴 瀏覽:662
陽光壓縮機繼電器 瀏覽:969
修改阿里雲伺服器密碼 瀏覽:815
lk4102加密晶元 瀏覽:588
怎麼更改app店面 瀏覽:489
設備部門如何做好伺服器 瀏覽:849
androido下載 瀏覽:478
神奇高量戰法副圖源碼 瀏覽:830
匯編語言設計凱撒密碼加密器 瀏覽:392
主次梁加密是加在哪裡 瀏覽:664
模板匹配演算法matlab 瀏覽:825
外地程序員去北京 瀏覽:24
安卓機換蘋果12如何轉移數據 瀏覽:420
互聯網ntp伺服器地址及埠 瀏覽:613
pdf到word轉換器 瀏覽:269
飛行解壓素材 瀏覽:498
51單片機指令用背嗎 瀏覽:936
unityai演算法 瀏覽:834
我的世界ice伺服器如何打開pvp 瀏覽:975