2012-05-27 15 views
5

Ho scaricato del codice che fa uso di libjpeg, ma non sono incluse le DLL nei file di origine e sto cercando di renderlo compilato/eseguito correttamente.come installare libjpeg per windows?

Sto usando VS2010: nei miei file sorgente ho #include "jpeglib.h" e Linker > Input > Additional Dependencies ho jpeg.lib, entrambi i quali non può essere trovato sul mio computer.

Sono riuscito ad andare qui: http://gnuwin32.sourceforge.net/packages/jpeg.htm e scaricato gli archivi "file sviluppatore", che in effetti contiene l'intestazione e il file .lib. I programmi si compongono bene, ma quando eseguo il file .exe ho un errore jpeg62.dll missing che non capisco.

Come posso risolvere questo?

Innanzitutto, non sono riuscito a trovare alcun file jpeg62.dll sul sito Web precedente.

In secondo luogo, mi chiedo perché ho bisogno di una DLL poiché pensavo che l'utilizzo di file .lib per il collegamento significava che non avrei bisogno di dll per il mio programma da eseguire. Qualsiasi aiuto è gradito

+1

Fare clic sul collegamento zip "Binari". Otterrai un file zip con una sottodirectory bin. Quello contiene il file jpeg64.dll di cui hai bisogno. Copialo nella directory di debug della soluzione. Considera gdiplus.h o WIC se non ti piace combattere la palla di problemi di cera. –

risposta

6

È inoltre necessario scaricare i pacchetti "binari" e "dipendenze" dal sito GnuWin32. Jpeg62.dll si trova nella directory bin dell'archivio "binari".

Un file .lib non è sempre una libreria statica completa, può anche essere una libreria di importazione per una DLL che deve essere presente quando viene eseguito il programma.

+0

So che questa è una domanda abbastanza vecchia, ma sarei felice se mi aiutassi. Perché si chiama jpeg62.dll e non jpeg.dll? Jpeg.lib sta puntando ad esso? turbojpeg.dll esiste però. –

+0

@VahagnTumanyan Perché su Windows non è possibile avere più versioni incompatibili della stessa libreria che condividono lo stesso nome come ".so" su unix, con la versione 6.2, come parte del nome, è possibile utilizzare contemporaneamente la libreria v6 con l'ultima v9. jpeg.lib punta a jpeg62.dll e turbojpeg.dll dovrebbe essere ABI compatibile con la libreria vjbb libjpeg (secondo [wikipedia] (https://en.wikipedia.org/wiki/Libjpeg)), quindi rinominarlo in jpeg62.dll potrebbe funzionare. – alexisdm