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,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
76 0
|
6月前
|
JSON 开发工具 C++
Windows下用CMake编译JsonCpp及配置(适合新手)
Windows下用CMake编译JsonCpp及配置(适合新手)
270 0
|
3月前
|
开发工具 git C++
libevent-windows VS2019-cmake 编译笔记
本文主要本文主要记录个人在使用window10使用cmake编译libevent遇到了一点小问题,这里就简单的记录一下,给cmake编译项目不熟悉的朋友一点帮助记录个人在使用window10使用cmake编译libevent遇到了一点小问题,这里就简单的记录一下,给cmake编译项目不熟悉的朋友一点帮助
37 0
|
Ubuntu Linux
Ubuntu20.04 编译Buildroot(支持Qt编译)
Ubuntu20.04 编译Buildroot(支持Qt编译)
1311 0
Ubuntu20.04 编译Buildroot(支持Qt编译)
|
Windows
编译WINDOWS版FFmpeg:编译x264
编译WINDOWS版FFmpeg:编译x264
100 0
|
C++ Windows
编译WINDOWS版FFmpeg:msys2环境准备
编译WINDOWS版FFmpeg:msys2环境准备
68 0
|
Linux
LINUX下载编译jpeglib
LINUX下载编译jpeglib
154 0
|
Unix Linux Shell
怎么样在Windows下使用Make编译Golang程序
怎么样在Windows下使用Make编译Golang程序
1131 0
关于 Qt使用MSVC版本编译出现“QMAKE_MSC_VER” 的解决方法
关于 Qt使用MSVC版本编译出现“QMAKE_MSC_VER” 的解决方法
关于 Qt使用MSVC版本编译出现“QMAKE_MSC_VER” 的解决方法
|
C++ 计算机视觉 Windows
Jpeglib开发笔记(一):JpegLib库介绍、windows编译和Demo
Jpeglib开发笔记(一):JpegLib库介绍、windows编译和Demo
Jpeglib开发笔记(一):JpegLib库介绍、windows编译和Demo