在Windows平臺上使用MSYS編譯一些開原始程式碼時經常只會生成DLL檔,而如果打算在VS中使用該DLL則需要有對應的LIB檔,下面以編譯oRtp為例來看看如何從DLL檔中匯出LIB檔。

 

需要進過兩個步驟:由DLL檔生成def檔;由def檔匯出Lib檔。

 

一、通過pexports或微軟編譯環境自帶的dumpbin.exe匯出DLL對應的def檔
方法一: pexports ***.dll > ***.def
方法二: dumpbin /exports ***.dll > ***.def
其中***代表你的dll的檔案名以及要生成的def的檔案名。
我推薦使用pexports,因為它匯出的def是標準的def格式,可在HTTP://sourceforge.net/projects/mingw/files/MinGW/Extension/pexports/下載;而微軟的dumpbin匯出的def需要我們稍微修改為標準的格式。下圖是pexports和dumpbin生成的def檔,如果你用dumpbin,則需要將其生成的def檔修改為pexports生成的def的格式。

20131007164726718  

 

 

圖一、pexports生成的def檔案格式


20131007164938750  
 

圖二、dumpbin生成的def檔案格式(它攜帶了更多的資訊,我們需要修改成圖一的格式)
 
二、通過微軟編譯環境自帶的lib.exe程式根據.def生成我們需要的lib檔
lib /def:***.def /machine:i386 /out:***.lib
一般會出現如下的錯誤報表,則需要在網上下一個mspdb80.dll,放在VC安裝目錄的bin下,例如D:\Program Files\Microsoft Visual Studio 9.0\VC\bin下即可。


20131007165328390  
 

以下是oRtp的Dll檔生成Lib檔的過程:


20131007165744218  
 

圖四、使用pexport的過程



20131007165835359  

圖五、通過dumpbin生成Lib時,如果不修改def的檔則會出錯




 

想通過手機用戶端存取羅梭實驗室:請點這裡

 

本站文章除注明轉載外,均為本站原創或編譯歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動,同學習共成長。轉載請注明:文章轉載自:羅梭實驗室 [HTTP://www.rosoo.net/a/201310/16764.html]
本文出處:CSDN博客 作者:ymsdu2004 原文
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()