我在BOOST中有一个与Generic Image Library相关的问题。在使用库的开始,我尝试使用以下代码读取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库?我应该把库放在通用图像库中?
答案 0 :(得分:2)
我认为您的答案可以找到here。
看起来你不需要在boost之前编译libjpeg,但是在构建使用jpeg I / O函数的代码时你需要让它可用。
答案 1 :(得分:1)
我遇到了同样的问题。 boost GIL与来自www.ijg.org的独立外部库密切相关(似乎主要是德国人)。对于Microsoft平台, 我发现没有安装程序 - 你必须编译源代码。更糟糕的是 对我来说,有一些Visual Studio配置文件,但不适用于v.8。 所以我从头开始制作自己的解决方案/项目。不要惊慌,事实并非如此 太糟了。它很容易编译。简而言之,这是如何:
[1]从www.ijg.org下载源代码zip文件jpegsr9b.zip。
[2]在解压缩源树的目录中的某个位置创建一个简单的基于控制台的Visual Studio项目(“jconfig”)。只添加一个源代码文件:ckconfig.c。编译并运行程序。它将生成一个头文件jconfig.h。将此文件复制或移动到主源代码目录中 - 此包中只有一个包含源代码的目录。
[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]建立图书馆。它完全是独立的,所以所有文件都应该编译好。