如何在Windows上安装libjpeg?

7
我下载了一些使用libjpeg的代码,但源文件中没有包含任何dll文件,我正在尝试使其正确编译/执行。
我使用的是VS2010: 在我的源文件中,我有#include "jpeglib.h",并且在链接器> 输入> 附加依赖项中,我有jpeg.lib,但这两个文件都找不到在我的电脑上。
我设法在这里找到:http://gnuwin32.sourceforge.net/packages/jpeg.htm 下载了“开发人员文件”档案,其中确实包含了头文件和.lib文件。程序编译得很好,但当我执行.exe时,出现了一个jpeg62.dll缺失错误,我不理解。
我应该如何解决这个问题?
首先,我在之前的网站上找不到jpeg62.dll文件。
其次,我想知道为什么我需要dll,因为我认为使用.lib文件进行链接意味着我的程序运行时不需要dll。
感谢任何帮助。

1
点击“二进制”zip链接。您将获得一个带有bin子目录的zip文件。其中包含您需要的jpeg64.dll。将其复制到解决方案的Debug目录中。如果您不喜欢处理繁琐的问题,可以考虑使用gdiplus.h或WIC。 - Hans Passant
1个回答

8
你应该从GnuWin32网站下载“binaries”和“dependencies”软件包。jpeg62.dll在“binaries”存档的bin目录中。
.lib文件并不总是一个完整的静态库,它也可以是dll的导入库,因此在运行程序时必须存在该库。

我知道这是一个相当老的问题,但如果您能帮助我,我会很高兴。为什么它被称为jpeg62.dll而不是jpeg.dll?jpeg.lib是否指向它?虽然存在turbojpeg.dll。 - Vahagn Tumanyan
2
因为在Windows上,您不能像Unix上的“.so”那样将同名的多个不兼容版本库共享,其中版本6.2作为名称的一部分,因此您可以同时使用v6库和最新的v9版本。 jpeg.lib指向jpeg62.dll,而turbojpeg.dll应该与libjpeg v6b库ABI兼容(根据[维基百科](https://en.wikipedia.org/wiki/Libjpeg)),因此将其重命名为jpeg62.dll可能有效。 - alexisdm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接