由.def文件生成lib文件[转]
? 最近在學習curl庫時,碰到一個問題,從官網上下載了一個lib版的,卻發現只有.dll,沒有lib文件,感覺很奇怪,google了之后才知道,原來庫作者的用意是讓用戶自己生成lib文件,下載到的lib文件中含有.def文件。唉,用了vs有幾個年頭了,卻連這么基礎的問題都不知道,編譯器是變得越來越智能了,只是讓我們變得越來越傻了。下邊我總結了一下由.def生成lib的方法。
? ? ? ? 在使用 VC 鏈接 dll 時,通常需要一個導入庫文件(.lib),但有時我們只有一個 dll 文件,怎么辦呢?
? ? ? ? 通常,在鏈接庫文件時,需要一個 (.lib)文件,lib 文件分為兩種:一種為靜態鏈接庫(Static Libary,以下簡稱“靜態庫”),另一種為動態連接庫(DLL,以下簡稱“動態庫”)的導入庫(Import Libary,以下簡稱“導入庫”)。VC 在鏈接 dll 時,需要根據導入庫(.lib)來定位 dll 中的符號位置。沒有這個文件,VC 鏈接器將不能正常鏈接。
?
解決此問題的辦法有三個:
?
以下重點介紹使用模塊定義文件來生成 lib 的方法。
模塊定義文件是用來描述 dll 文件的文本格式的文件,其格式如下:
LIBRARY libdll.dll ;dll 文件的文件名
DESCRIPTION "描述信息" ;描述信息,此行可以不要
EXPORTS
lib_add @1 ;函數描述
lib_sub @2 ;函數描述
第一行:在 LIBRARY 后面填 dll 文件的名字,分號后面是注釋。
第二行:DESCRIPTION,描述信息,此行可以忽略
第三行:EXPORTS
第四行開始,是 dll 文件中函數的描述,可以使用 dumpbin /EXPORTS libdll.dll 命令查看,(其中,libdll.dll 是目標 dll 的文件路徑)
以上文件寫好后,保存成 libdll.def 文件,放在和 dll 文件相同的目錄。
使用 lib /def:libdll.def 命令,可以生成 lib 文件。
來源:?http://blog.csdn.net/windows_nt/article/details/9708101
轉載于:https://www.cnblogs.com/tibetanmastiff/p/7053482.html
總結
以上是生活随笔為你收集整理的由.def文件生成lib文件[转]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工银电信联名公务卡怎么样?商务出行高端必
- 下一篇: 平安银行信用卡积分规则是什么?怎样用积分