2012-05-27 26 views
5

He descargado algunos códigos que hacen uso de libjpeg, pero no se incluyen dlls en los archivos fuente, y estoy tratando de hacerlo compilar/ejecutar correctamente.cómo instalar libjpeg para windows?

estoy usando VS2010: en mis archivos de origen tengo #include "jpeglib.h" y en Linker > Input > Additional Dependencies tengo jpeg.lib, ambos de los cuales no se puede encontrar en mi equipo.

Logré ir aquí: http://gnuwin32.sourceforge.net/packages/jpeg.htm y descargué los archivos de "archivos de desarrollador", que de hecho contienen el encabezado y el archivo .lib. Los programas compilan bien, pero cuando ejecuto el .exe tengo un error jpeg62.dll missing que no entiendo.

¿Cómo se supone que voy a resolver esto?

En primer lugar, no pude encontrar ningún archivo jpeg62.dll en el sitio web anterior.

En segundo lugar, me pregunto por qué necesito un dll ya que pensé que usar archivos .lib para el enlace significaba que no necesitaría dlls para ejecutar mi programa. Se agradece cualquier ayuda

+1

Haga clic en el enlace zip "Binarios". Obtendrás un zip con un subdirectorio bin. Eso contiene el archivo jpeg64.dll que necesita. Cópialo en el directorio Debug de tu solución. Considera gdiplus.h WIC si no te gusta pelear la pelota con problemas de cera. –

Respuesta

6

También debe descargar los paquetes "binarios" y "dependencias" del sitio GnuWin32. Jpeg62.dll está en el directorio bin del archivo "binarios".

Un archivo .lib no siempre es una biblioteca estática completa, sino que también puede ser una biblioteca de importación para un dll que luego debe estar presente cuando se ejecuta el programa.

+0

Sé que esta es una pregunta bastante antigua, pero me alegraría si me ayudas. ¿Por qué se llama jpeg62.dll y no jpeg.dll? Está jpeg.lib apuntando a eso? turbojpeg.dll existe sin embargo. –

+0

@VahagnTumanyan Debido a que en Windows no puede tener múltiples versiones incompatibles de la misma biblioteca que comparten el mismo nombre como ".so" en Unix, con la versión 6.2 como parte del nombre, puede usar la biblioteca v6 simultáneamente con el último v9. jpeg.lib apunta a jpeg62.dll y turbojpeg.dll se supone que es ABI compatible con la biblioteca libjpeg v6b (de acuerdo con [wikipedia] (https://en.wikipedia.org/wiki/Libjpeg)), por lo que se lo cambia el nombre a jpeg62.dll podría funcionar. – alexisdm

Cuestiones relacionadas