obj, lib, dll, h之間的相互關係

2021-06-04 05:37:10 字數 1733 閱讀 7853

樓主sunlet(大贏家)

2000-09-12 22:42:00 在 vc/mfc / 基礎類 提問

1。.obj,.lib,.dll,.h之間的相互關係如何?使用的時候呼叫方式有什麼不同?

2。怎麼自己做乙個.lib的檔案,請把過程將一下,最好有示例,謝謝!

3。工程檔案中怎麼使用obj.檔案。

1. obj:是cpp對應的二進位制**格式,是未經重定位的!

lib:是若干個obj的集合,本質與obj相同!

dll:是可實際執行的二進位制**,有定位**的!

h:是標頭檔案,也可算是源**,因為當cpp中用#include時,會把包含的檔案的內容在cpp中擴充套件開!

toptop

1. 使用時,obj和lib是沒有本質區別的,lib就是obj,使用lib地方都可以使用obj;

dll是動態連線庫,是執行時動態載入的,而lib是靜態的連線庫,相當於程式編譯的未經鏈結定位的二進位制**!(obj的一種表現形式)

h檔案是用來編寫函式(類,變數型別)原型宣告的,通常dll、lib和obj的使用需要有h檔案的配合,以獲得二進位制**的原型宣告!

當然使用dll時也可用getprocaddress來配合避免使用h檔案!

top備註:

在使用dll時也會有乙個附加的lib是用來表明dll的引出表而用的,其中的資訊相當於乙個obj中只有宣告引出的部分,沒有函式體。

top怎麼把我的lib 做成象編譯器的lib那樣,自動新增到我的工程中.而不用每次add files to project

top沒有辦法!必須每次自己新增!

最好的情況是在tools->options...->directories中將include、library、source files的路徑設定新增你的**庫的目錄,為了除錯方便,把debug版和release版分別輸出不同的名字,如將debug版的輸出檔案後新增乙個d.

但是這樣也必須每次使用時在使用的工程設定的project->settings->link->object/library modules:欄中將需要的庫的名字新增進去(無需路徑)!

top非常感謝holly的幫助,我做lib的時候遇到以下問題,請你在解釋一下:

我編寫了乙個支援mfc的lib(foxreader.lib),當mfc程式呼叫它時,就有以下幾個warning,

單程式仍然能執行,請問一下,怎麼去除這些warning.

linking...

link : warning lnk4098: defaultlib "mfc42.lib" conflicts with use of other libs; use /nodefaultlib:library

link : warning lnk4098: defaultlib "mfcs42.lib" conflicts with use of other libs; use /nodefaultlib:library

link : warning lnk4098: defaultlib "msvcrt.lib" conflicts with use of other libs; use /nodefaultlib:library

foxclass.exe - 0 error(s), 3 warning(s)

top這個warning沒有必要去掉!

這是因為你的foxreader.lib中也有用到相同的mfc的lib檔案,linker自動將重複的鏈結跳過給出的資訊!

top相關問題

obj, lib, dll, h之間的相互關係

1。obj,lib,dll,h之間的相互關係如何?使用的時候呼叫方式有什麼不同?2。怎麼自己做乙個.lib的檔案?3。工程檔案中怎麼使用obj.檔案?回答 1.obj 是cpp對應的二進位制 格式,是未經重定位的!lib 是若干個obj的集合,本質與obj相同!dll 是可實際執行的二進位制 有定位...

obj lib dll h之間的相互關係

obj 是cpp對應的二進位制 格式,是未經重定位的!lib 是若干個obj的集合,本質與obj相同!dll 是可實際執行的二進位制 有定位 的!h 是標頭檔案,也可算是源 因為當cpp中用 include時,會把包含的檔案的內容在cpp中擴充套件開!使用時,obj和lib是沒有本質區別的,lib就...

人之間的尊重是相互的 人與人之間要學會相互尊重

第二是要有 三人行,必有我師 的良好心態。在我們的周圍,在我們生活的集體中,不乏學習的楷模。他們人儀表美 心靈美 語言美 品質美都是我們學習的好榜樣。他們淵博的知識,敏捷的思維,善辯的口才,傑出的才華,精湛的藝術,完美的人格,豐富的愛心,以及奉獻的精神等等,都是值得我們仰慕與學習的。只有我們時時 處...