2011-03-17 186 views
8

我是新來的windows和visual studio。我必須編譯用C++編寫的代碼。它使用不同的庫。我找到了這些庫的dll文件。我可以毫無問題地編譯源代碼,但存在鏈接問題。我不知道如何鏈接dll文件。我知道我需要.lib文件。但是一些所需的庫沒有提供任何lib文件。只有dll文件和dif文件。我怎樣才能通過使用Visual Studio 2010的終極生成所需的lib文件?我找不到一個名爲lib.exe的程序。謝謝。lib.exe,Visual Studio,從dll和def文件生成.lib文件

回答

14

您確實需要lib.exe才能將.def文件轉換爲鏈接器需要的.lib文件。它存儲在Visual Studio目錄的vc \ bin目錄中,默認情況下爲C:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \ bin \ lib.exe。最簡單的方法是使用「Visual Studio命令提示符」,您可以在「開始」菜單,Microsoft Visual Studio 2010,Visual Studio Tools中找到它。

接下來,使用/def:foo.def選項運行lib.exe以生成.lib。如果提供,請遵循供應商的說明。不要猶豫與他們聯繫尋求支持。

2

這確實需要很多工作,並且通常對於需要的DLL的源代碼和/或庫更容易,因爲使用相同的編譯器編譯庫和程序是一個好主意(使部署更容易,所以你不依賴於多個VC運行時)。

您可以使用本指南創建.lib文件:http://support.microsoft.com/kb/131313

這是一個過程,需要時間,以及大量的調試(根據DLL的和的複雜的大小DLL的接口)

根據您的平臺上,該位置通常是:

  • 的Windows 7 32位與32位VS2010:

    C:\ Program Files文件\微軟的Visual Studio 10.0 \ VC \ BIN \

  • 的Windows 7 64位與64位VS2010:

    C:\ Program Files文件\微軟的Visual Studio 10.0 \ VC \ BIN `

  • 的Windows 7 64位與32位VS2010:

    C:\ Program Files文件(x86)的\微軟的Visual Studio 10.0 \ VC \ BIN \

何如果你啓動Visual Studio命令提示符,它應該在你的路徑中。 (在開始菜單中的Visual Studio工具下查找)

2

如果您轉到DLL的項目屬性並選中鏈接器 - >高級,則會出現一個用於「導入庫」的條目。您可能必須將其設置爲在生成DLL時生成lib文件,或者如果它已經設置,它應該指向lib文件的位置。

這表示如果使用Visual Studio 2010構建整個項目,則在項目的「通用屬性參考」部分中添加相關庫應自動觸發必要的鏈接語句。

相關問題