当前位置: 首页 > 工具软件 > LibJPEG > 使用案例 >

LibJpeg编译

石正卿
2023-12-01

在Unix或Linux系统上的编译情况如下:

1.       tar xzvf jpegsrcv6b.tar.gz(在我的资源中心可以下载)

2.       cd jpeg-6b

3.       ./configure

4.       make

5.       make test(编译测试程序,看看能否在系统上正确运行)

6.       make install


 

 

在windows上,用VisualStadio2008编译的方法如下:

1)

1.       解开原始的zip文件

2.       打开VS2008,新建Project,在弹出的Windows中,选择Win32 Project,路径选C:,Name输入jpeg-6b,不选create directory for silution.点击Next

3.       在接下去窗口选择DLL,Empty Project。然后点击Finish即可。

4.       打开jpeg-6b solution添加文件。在source file中添加.c文件,因为我们要生成dll,所以参见makelib.ds文件中生成lib所需的.c,不用将所有.c加入

5.       将jconfig.vc改为jconfig.h.

6.       将jpeg-6b目录下的.h加入到solution的header files

7.       保存solution后,按F7即可生成dll

8.       加入example.c,将此.c文件中的read_JPG_File作为dll调用的入口程序

 

在windows上,用VisualStadio编译的方法如下:

用一个库的Makefile,可以把libjpeg生成一个静态的Win32库,应用程序的Makefile可以生成示例程序(win32命令行应用程序)。

1.       将jconfig.vc复制并改名为jconfig.h,复制makelib.ds并改名为jpeg.mk,复制makeapps.ds改名为apps.mak

2.       点击.mak文件构造project workspace

3.       先编译库项目,再编译应用程序项目

4.       应用程序在app\Release下

5.       可以执行自检,NMAKE /f makefile.vc test

 

2)

在windows上,用命令行直接编译libjpeg.(事先运行vsvars32.bat设置环境变量)

在libjpeg源代码中有一个Makefile.vc的文件,可以通过nmake /f makefile.vc [nodebug=1]来编译libjpeg,但是只能编译静态库。需要修改makefile.vc和jconfig.h才能编译成dll,可供其它应用程序调用。另外jconfig.vc改为jconfig.h

在Makefile.vc文件中添加编译dll规则:

Libjpeg.lib:$(LIBOBJECTS)

$(RM) libjpeg.lib

Lib –out:libjpeg.lib $(LIBOBJECTS)

#添加以下几行

Libjpeg.dll:$(LIBOBJECTS)

Link –dll –out:libjpeg.dll $(LIBOBJECTS)

在jmorecfg.h中添加

#define _WIN32_

#define JPEG_DLL

然后nmake /f makefile.vc nodebug=1就可以了(在TOOLS\VisualStadio2008 Command Prompt下)

 

优化

Libjpeg允许用户做一些与机器系统有关的优化。在做优化前,先通过基本的编译和自检。在优化之后,重新编译,运行自检,以确认你有没有改错。详见其readme.

 

Libjpeg的内存使用

Jmemnobs.c不使用任何存储备份文件,所用到的空间都有malloc分配,要求系统有足够的内存或虚拟内存。

Jmemname.c会创建一些临时文件,用于jpeg解压。

 

以前搞图片在LCD屏上显示的时候,曾经在Linux下编译过libjpeg,现在再次编译,不过换了平台而已。本文使用的编译器为VS2003,编译的libjpeg为最新版本,即jpeg-8c。

编译步骤:
1、添加环境变量PATH:C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
2、解压jpegsrc.v8c.tar.gz,得到jpeg-8c
3、修改源代码中jconfig.vc为jconfig.h
4、修改makefile.vc,将Pull in standard variable definitions下面的一行换为

!include <C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\Win32.Mak>


5、在all:libjpeg.lib 中添加dll的编译

libjpeg.dll: $(LIBOBJECTS)
 $(RM) libjpeg.dll
 link -dll -out:libjpeg.dll  $(LIBOBJECTS)

 

6、在dos下进入源代码目录,输入

vcvars32


编译

nmake /f makefile.vc nodebug=1


7、在当前目录生成libjpeg.dll和libjpeg.lib

头文件:jconfig.h、jerror.h jmorecfg.h jpeglib.h

 


最后生产几个可执行文件:cjpeg,djpeg,jpegtran,rdjpgcom,wrjpgcom

其中cjpeg可以压缩其他图片格式文件成jpg格式,djpeg可以将jpg格式图片文件解压缩成其他格式,

举例:

djpeg -os2 x.jpg > x.bmp

djpeg -pnm x.jpg > x.ppm

 

windows下生成静态库

 

1,下载libjpeg。http://www.ijg.org,选windows format

2,解压缩
3,进入解压后的文件夹,将jconfig.vc改命为jconfig.h
4,进入vc的命令行模式下,登录到目标文件夹
5,输入执行 :  nmake /f makefile.vc nodebug=1

编译成功后会在当前目录找到一个叫libjpeg.lib的文件。

 

 类似资料: