c 如何使用別人寫好的庫?也要用include命令把庫檔案包含進來嗎?

時間 2021-06-02 16:01:25

1樓:lhelpme

讀readme 超複雜的,還有大量的巨集亂七八糟的配置工具鏈選擇

靜態動態

原始碼分幾部分,那些是庫,那些是工具

編譯時候生成cpu架構

有cmake 還好,沒有就makefile,都沒有,還得自己手工操作,建個工程處理

2樓:濤滔不絕

庫和包含檔案不一樣,include包含的可以成為庫,但實際上算包含檔案一般用.h,.c,.

cpp等字尾,.h就是所謂的標頭檔案。而真正意義上的庫檔案是.

lib檔案,需要新增外部依賴到這些檔案,一般作者都會有說明。如果是包含檔案,只需要#include,若在本目錄下,請使用「」,如果在包含目錄下,預設為編譯器的include目錄下,請使用<>,這中間注意是檔案全名,不能省略副檔名

3樓:做自己想做的遊戲

要看看別人的庫是什麼形式的.

如果是原始碼,則是最好的,但是如果配置複雜,則比較麻煩.假設原始碼結構不複雜,沒有依賴項.那只需要將原始碼的專案檔案新增到自己的解決方案中.

設定好輸出目錄.在自己的專案中引用庫專案所編譯出的檔案,比如靜態庫,動態庫.當然這需要新增標頭檔案的包含目錄,以及在引用的地方#include需要的標頭檔案.

如果是靜態庫和標頭檔案.其實比上乙個要簡單一點,只需要把靜態庫拷貝到自己專案中的乙個目錄,然後將該目錄新增為附加依賴專案錄.然後設定引用該靜態庫,將標頭檔案拷貝到自己的專案中,在需要的地方#include標頭檔案.

如果是動態庫和標頭檔案,也比較簡單,動態庫都會附帶乙個靜態庫作為引入庫.所以會比只有靜態庫和標頭檔案多一步,就是將動態庫拷貝到自己exe的所在目錄中.

4樓:普通少年pro max

看你用的庫的型別。

如果是「Header Only」的庫,全都是標頭檔案,典型的都是由.hpp檔案構成的(不絕對,可能有的人用.h,但一定沒有.

cpp),那你就只需要include進來相關的標頭檔案即可,一般這種庫,會有乙個總的入口標頭檔案,include這乙個就行,例如boost庫中的spirit庫就是這樣的,只需要包含相關路徑就行,至於用絕對路徑還是相對路徑,就看你的專案配置了。

如果是其他常規的庫,也就是至少有乙個.cpp檔案的,如果你不想逐個複製進來編譯到自己的專案裡,一般都需要把這個庫編譯為靜態庫或者動態庫,然後在專案配置、或者CMakeList中配置好相應的庫檔案路徑依賴,之後再include入口標頭檔案。

這個庫是哪種形式的,一般庫作者都會在README中進行說明,即使是需要先編譯為靜態庫或者動態庫的,作者一般也提供了現成的編譯配置檔案,按照說明配置即可。

C和C 的適用場合?如何建立C 實現的動態庫?動態庫如何保證向後相容,即二進位制相容性?

馮東 C 和 C 標準都沒有規定二進位制相容。但是這不意味著 C 和 C 在這件事情上是等同的。所謂 標準沒有規定 A 是說 不存在乙個通用的方法保證 A 在所有編譯器和 OS 的組合上都成立 但是它並不會阻止乙個更弱一些的方案,就是 在每個編譯器和 OS 的組合上至少存在乙個方案讓 A 成立 C ...

c 寫的介面庫是如何運作的?

brook zhu 以DirectUI方式為例,主要分為幾個部分 1 如何描述介面?一般介面的布局都會用描述性語言來寫,所以你需要定義乙個自己的介面描述方式及對應的解析邏輯。2 如何設計控制項及其層次結構?介面庫主要是給別人用的,衡量乙個介面庫功能的完善度有個指標就是它提供的控制項夠不夠多。3 如何...

C 11是如何封裝Thread庫的?

template class Function,class.Args explicit thread Function f,Args args 如果不perfect forward,還是不難的嘛,用不著tuple或者虛函式 歐文韜 lambda表示式的原理 https www.owent.net T...