2012-05-27 88 views
5

我下載了一些使用libjpeg的代碼,但沒有包含源文件中的dll,並且我試圖使其正確編譯/執行。如何爲Windows安裝libjpeg?

我使用VS2010: 在我的源文件我有#include "jpeglib.h"Linker > Input > Additional Dependencies我有jpeg.lib,這兩者不能在我的電腦上找到。

我設法去了這裏:http://gnuwin32.sourceforge.net/packages/jpeg.htm並下載了「開發者文件」檔案,它確實包含了頭文件和.lib文件。程序編譯正常,但是當我執行.exe時,我有一個jpeg62.dll missing錯誤,我不明白。

我該如何解決這個問題?

首先,我在以前的網站上找不到任何jpeg62.dll文件。

其次,我想知道爲什麼我需要一個DLL,因爲我認爲使用.lib文件進行鏈接意味着我不需要DLL來運行我的程序。 任何幫助表示讚賞

+1

點擊「Binaries」鏈接。你會得到一個帶有bin子目錄的zip文件。包含您需要的jpeg64.dll。將其複製到您的解決方案的Debug目錄。考慮gdiplus.h或WIC,如果你不喜歡打蠟問題的球。 –

回答

6

您還應該從GnuWin32站點下載「二進制文件」和「依賴關係」軟件包。 jpeg62.dll位於「二進制文件」存檔的bin目錄中。

.lib文件並不總是一個完整的靜態庫,它也可以是一個dll的導入庫,然後在程序運行時它必須存在。

+0

我知道這是一個相當古老的問題,但如果你能幫助我,我會很高興。爲什麼叫jpeg62.dll而不是jpeg.dll? jpeg.lib指向它嗎? turbojpeg.dll雖然存在。 –

+0

@VahagnTumanyan因爲在Windows上不能有多個不同版本的同一個庫共享相同的名稱,如unix上的「.so」,版本6.2作爲名稱的一部分,所以可以同時使用v6庫與最新的v9。 jpeg.lib指向jpeg62.dll,並且turbojpeg.dll應該與ABI兼容libjpeg v6b庫(根據[wikipedia](https://en.wikipedia.org/wiki/Libjpeg)),所以將其重命名爲jpeg62.dll可能工作。 – alexisdm