萌新請教幾個問題, 關于 .lib 檔案的作用 :
lib 檔案分為靜態 和 動態是吧? 靜態里面包含實作, 動態里面包含宣告, 相當于頭檔案對不對?
如果是靜態的, 則沒有 dll 對不對?
問題:
1. 如果添加 / 鏈接 了 lib 檔案, 還需要頭檔案嗎? 因為網上下載的三方庫如 sqlite, 里面有 def 檔案, 和 dll 檔案, 能夠生成 lib 檔案, 但沒有頭檔案, 是因為不需要?
2. 我用 C 語言寫過一些動態庫, 都是生成 dll 檔案后, 通過 #include "xxx.h" 來使用我的 dll, 為什么我不需要生成 lib? lib 存在的意義是什么?
uj5u.com熱心網友回復:
c/c++變成可執行檔案需要分兩步,編譯+鏈接,編譯后的的結果是一個中間檔案obj或者lib,每個c,或cpp等編譯單元,就會形成一個obj,鏈接就是把這些個中間檔案還有一些別的檔案比如資源檔案,結合為exe檔案。1、鏈接了lib,需要頭檔案,因為頭檔案的一些宣告定義是為了編譯程序用的,dll也是可執行檔案,用dll不一定非要Lib和h檔案因為它可以用loadlibrary,和getprocessaddress兩個api獲取輸出函式的地址,直接執行,所以也叫二進制的復用。
2、你的lib可能已經倒入到了你的工程,只不過你沒發現而已。
uj5u.com熱心網友回復:
我用c寫的dll,是在命令列下編譯的,用gcc ,然后拷貝到專案目錄,還有頭檔案,肯定沒有lib轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/247370.html
標籤:C++ 語言
上一篇:C語言小白求助很簡單很簡單的問題
下一篇:weblogic12C啟動報錯
