0

我有一个与BOOST中的通用图像库相关的问题。在开始使用该库时,我尝试使用以下代码读取 jpeg 图像:

rgb8_image_t img;
jpeg_read_image("test.jpg",img);

但是,当我编译代码时,出现以下错误:

error C1083: Cannot open include file: 'jpeglib.h': No such file or directory

我发现 jpeglib.h 不是库内的文件,因此我认为在使用该库时必须安装 jpeg 库。然而,在互联网上几乎没有关于它的信息。我现在在 windows 环境下使用 VC10 库,我应该在使用通用图像库之前编译 JPEG 库吗?此外,我应该静态编译还是动态编译 JPEG 库?我应该将库放在通用图像库中的什么位置?

4

2 回答 2

2

我认为您的答案可以在这里找到。

看起来您不需要在 boost 之前编译 libjpeg,但是在构建使用 jpeg I/O 函数的代码时确实需要它。

于 2013-07-03T12:33:55.420 回答
1

我遇到了同样的问题。boost GIL 与来自 www.ijg.org 的单独的外部库密切相关(似乎主要是德国人)。对于 Microsoft 平台,我发现没有安装程序 - 您必须编译源代码。对我来说更糟糕的是,有一些 Visual Studio 配置文件,但不是 v.8。所以我从头开始制作自己的解决方案/项目。不要惊慌,情况并没有那么糟糕。它很容易编译。简而言之,方法如下:

[1] 从 www.ijg.org 下载源代码 zip 文件 jpegsr9b.zip。

[2] 在解压源代码树的目录中的某处创建一个简单的基于控制台的 Visual Studio 项目(“jconfig”)。仅添加 1 个源代码文件:ckconfig.c。编译并运行程序。它将生成一个头文件 jconfig.h。将此文件复制或移动到主源代码目录 - 此包中只有 1 个包含源代码的目录。 [3] make another Visual Studio project that will create the library for the JPG package. Configure the project to make a library (I assume you know how), and include the JPG package source code directory in the "Additional Include Directories" configuration parameter. [4] 包括所有源代码文件(它们都是.c 文件),除了以下文件:rdjpgcom.c、wrjpgcom.c 和 jpegtran.c。这些文件是独立的程序(每个都有 main() - 显然你不希望它们在库中)。 [5] exclude 2 of the following files (ie, include only 1 of these files): jmemname.c, jmemnobs.c, or jmemansi.c. They contain a different implementations of a "memory manager". I used jmemnobs.c, as the comments indicated it was the simplest implementation, and I just wanted the code to work and was in a hurry. So, in other words, if you did step [4] and included all .c files, now take out 2 of the 3 files listed from your main project file. [6] 建立图书馆。它是完全独立的,因此所有文件都应该可以正常编译。

于 2016-05-19T01:09:04.183 回答