Win32环境下编译JpegLib

简介:
       Jpeg是一种常用的压缩图像格式。其编解码过程很复杂,目前大部分软件均采用现成 的Jpeg库, 比如GDI+ 以及 IJG .  前者需要额外的DLL的支持,而且某些情况下性能很成问题,所以IJG仍然是最好的选择之一。
      IJG可以去[url]http://www.ijg.org/[/url]获取 . 下载来的是一个源代码压缩包,需要自己编译。这个包里面包含了JpegLib 以及一些实用工具(如CJpeg ,可以把BMP或者DIB转换成JPG,而且支持很多参数,这个程序可以直接改造成一个很有用的组件)。
      编译IJG并不是很高深的东西,它本身就附带了一个说明文档。但是这个文档非常长,而且结构令人莫名其妙,废话一大堆 .主要精髓如下:
  1. 把 jconfig.vc 改名为 jconfig.h
  2. 把 makelib.ds 改名为 jpeg.mak
  3. 使用VC++构建jpeg.mak
如果一切顺利的话,可以得到 jpeg.lib 这个静态库文件。这个东东就是IJG的核心,一切与之有关都要链接到该文件。
然后就是CJpeg的编译。CJpeg其实也可以直接使用压缩包中的makefile.vc来构建,不过这样的话生成的文件很大,而且不便于改造。所以把CJpeg单独抠出来,是较好的方式。虽然这也不是很难的事情,但我仍然花了很长时间。主要问题是Cjpeg内部调用了很多外部函数,而这些外部函数又恰好分布在不同的地方. 如果直接把CJpeg.c拿出来,则会出现很多error LNK2001: unresolved external symbol........之类的错误。CSDN上有人问了这个问题,不过那些回复的人极其不负责任,说是什么没有链接jpeg.lib . 其实真正的原因是CJpeg.c还依靠其他的几个源文件。下面就是其所需的所有文件列表:
cjpeg.c
cdjpeg.c
rdbmp.c
rdswitch.c
rdgif.c
rdppm.c
rdtarga.c
jconfig.h
cdjpeg.h
jinclude.h
jpeglib.h
jerror.h
cderror.h
jversion.h
jmorecfg.h
jpeglib.h
建立一个Win32空工程,然后加入以上文件,并在头部加入下面语句以便链接jpeglib
#pragma comment(lib, "jpeg.lib")
即可编译通过。
而Cjpeg可以被改造成很多有用的工具,为我们免去了很多繁杂的工作。可谓是一举两得。









本文转自 kevx 51CTO博客,原文链接:http://blog.51cto.com/spinlock/138289,如需转载请自行联系原作者
目录
相关文章
|
JSON 开发工具 C++
Windows下用CMake编译JsonCpp及配置(适合新手)
Windows下用CMake编译JsonCpp及配置(适合新手)
651 0
|
6月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
Win7上编译OpenCV3.2与扩展模块
Win7上编译OpenCV3.2与扩展模块
45 0
|
7月前
|
计算机视觉 Windows
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
308 0
|
编译器 C语言 Windows
Qt 使用MinGW编译器调用MinGW编译生成的dll
Qt 使用MinGW编译器调用MinGW编译生成的dll
330 0
|
Ubuntu Linux
Ubuntu20.04 编译Buildroot(支持Qt编译)
Ubuntu20.04 编译Buildroot(支持Qt编译)
2190 0
Ubuntu20.04 编译Buildroot(支持Qt编译)
|
Java Linux 算法框架/工具
Linux下gcc编译依赖库可能出现的系列问题以及对应解决方法(以GDAL库为例)
Linux下gcc编译依赖库可能出现的系列问题以及对应解决方法(以GDAL库为例)
481 0
Linux下gcc编译依赖库可能出现的系列问题以及对应解决方法(以GDAL库为例)
|
Unix Linux Shell
怎么样在Windows下使用Make编译Golang程序
怎么样在Windows下使用Make编译Golang程序
1687 0
|
Windows
FFmpeg下载编译好的WINDOWS库头文件
FFmpeg下载编译好的WINDOWS库头文件
275 0
|
Windows
编译WINDOWS版FFmpeg:编译x264
编译WINDOWS版FFmpeg:编译x264
139 0
|
Linux
LINUX下载编译jpeglib
LINUX下载编译jpeglib
698 0