Window下用Cmake和vs 2010构建和编译podofo

 

   000在编译过程中必须用到的库有:zlibjpegfreetype三个,但是考虑到今后的需要,还包括了pngtiff的库,如果有需要的话也可以包含测试的cppunit库(这里没有包含这个库,呵呵,是因为这个库编译的都问题o(╯)o)。使用的编译器是VS2010,用Cmake构建。

一、下载及版本

下载PoDoFo :podofo-0.9.0

http://podofo.sourceforge.net/download.html

下载CMakecmake-2.8.2

http://www.cmake.org/cmake/resources/software.html

下载zlib zlib1.2.5

http://zlib.net/

下载libjpegjpegsr8c

http://www.ijg.org/

下载字体引擎ft244.zip

http://download.savannah.gnu.org/releases/freetype/

下载libtifftiff-4.0.0beta6

http://www.libtiff.org/

下载libpnglibpng-1.5.1

http://libpng.sourceforge.net/index.html

 

二、编译依赖库

1.zlib库有经编译的版本下载,就不用自己编译,直接用了

 

2.Jpeg

假设jpeg解压后的目录为c:/developer/jpeg

打开Visual Studio Command Prompt,切换到c:/developer/jpeg目录下:

copy jconfig.vc jconfig.h

nmake /f makefile.vc /a

 

就会在当前目录(c:/developer/jpeg)下生成libjpeg.lib

 

3.Freetype

假设解压后目录为D:/parsePDF/freetype-2.4.4,在vs中打开builds/win32/visualc/freetype.sln

分别在debug multithreadedrelease multithreaded模式下生成(生成——>配置管理器——>活动解决方案——>选择)。这时,在D:/parsePDF/freetype-2.4.4/objs下就会生成debug_mtrelease_mt两个文件夹,freetype244MT.libfreetype244MT_D.lib两个库文件,将两个库文件和debug_mt文件夹中的vc90.pdb(使VC++能够找到freetype的调试信息)文件一起复制到D:/parsePDF/freetype-2.4.4/objs/win32/vc2008文件夹下。

 

 

4.编译libtiff

下载tiff-4.0.0beta6

A.修改tiff-4.0.0beta6/nmake.opt

JPEG_SUPPORT   = 1

JPEGDIR     = d:/parsePDF/jpeg-8c

JPEG_INCLUDE   = -I$(JPEGDIR)

JPEG_LIB    = $(JPEGDIR)/libjpeg.lib

 

ZIP_SUPPORT= 1

ZLIBDIR     = d:/parsePDF/zlib125-dll

ZLIB_INCLUDE   = -I$(ZLIBDIR)

ZLIB_LIB    = $(ZLIBDIR)/zdll.lib

 

B.打开cmd.exe

>cd tiff-3.9.4

>%comspec% /k ""G:/Program Files/Microsoft Visual Studio 10.0/VC/vcvarsall.bat"" x86

(如果是x64的话运行%comspec% /k ""G:/Program Files/Microsoft Visual Studio 10.0/VC/vcvarsall.bat"" x64)

>nmake /f makefile.vc

虽然最后会提示有link error,但我们需要的libdll 都已经编译出来了:

lib: tiff-4.0.0beta6/libtiff/libtiff.lib

dll:tiff-4.0.0beta6/libtiff/libtiff.dlllibtiff_i.lib

 

5.编译libpng

下载lpng151.zip解压到D:/parsePDF/lpng151

avs2010中打开D:/parsePDF/lpng151/projects/vstudio/vstudio.sln

b使用自己下载的zlib,在解决方案-》属性-》通用属性-》项目依赖项中去掉libpngzlib的依赖

clibpng项目-》属性-》配置属性-vc++目录中添加zlib库的lib(库目录)和include路径(包含目录);并在链接器-》输入-》附加依赖性中添加zdll.lib(自己的源文件中的zlib库)

d这是libpngpnglibconf还有依赖,所以先编译pnglibconf,再编译libpng;或者直接编译整个解决方案(这时其他的项目可能有错误,但对libpng不影响),在D:/parsePDF/lpng151/projects/vstudio/Debug或者D:/parsePDF/lpng151/projects/vstudio/Release文件夹(取决于生成时的配置:生成->配置管理器)下将生成libpng15.dlllibpng15.lib

 

 

三、构建vs解决方案

1.安装Cmake

2. PoDoFo源文件夹中建立ext文件夹,为依赖的库各建立一个文件夹,将生成的库和一些头文件拷贝到对应的文件夹下(这个步骤只是为了使用的方便和思路的清晰,也可以不要)

3.Cmake中选择podofo的源文件夹为source,新建一个文件夹podofoBin作为build文件夹

4.选择“Advanced”选项,点击下方的configure,第一次的时候会提示选择编译器,这里我们选择VS 2010

5. 此时会提示:ErrorError in configure processproject files may be invaild!因为我们的各个库还没就位。

6. 开始显示的只有zlib选项(因为其他的库对zlib也有依赖):

  ZLIB_INCULDE_DIR

  ZLIB_LIBRARY_RELEASE

  ZLIB_LIBRARY_DEBUG

分别选择它们所在的目录,如果只有一个库,也不知道是release版本还是debug版本,就把两个项都用一个填充(这种解决办法,编译过程中没有发现有问题,不知道对后面有没有影响,有知道的请指教O(∩_∩)O~),填好后再次点击configure,这时还是有错误,但这是出现了其他库的选项,我们继续填写其他库的选项,依次填入,将不需要的库勾选掉,如有可能cppunit_FOUND选项被勾选,那么如果没有提供cppunit的库和头文件路径就会出现错误(在下面的输出框内)

7. 所有的都填写好了之后,在次点击configure,下面的输出框提示configure done!且需要的几个库都找到(也在下方的提示框显示),这时点击generate,就会在podofoBin文件夹中产生podofo的解决方案

8. 然后将podofo装到vs 2010中编译生成就会在/podofoBin/src/Debug文件夹中生成podofo.lib

   大功告成!O(∩_∩)O~

 

 

 

 

你可能感兴趣的:(PDF)