000在编译过程中必须用到的库有:zlib,jpeg,freetype三个,但是考虑到今后的需要,还包括了png,tiff的库,如果有需要的话也可以包含测试的cppunit库(这里没有包含这个库,呵呵,是因为这个库编译的都问题o(╯□╰)o)。使用的编译器是VS2010,用Cmake构建。
一、下载及版本
下载PoDoFo :podofo-0.9.0
http://podofo.sourceforge.net/download.html
下载CMake:cmake-2.8.2
http://www.cmake.org/cmake/resources/software.html
下载zlib: zlib1.2.5
http://zlib.net/
下载libjpeg:jpegsr8c
http://www.ijg.org/
下载字体引擎ft244.zip:
http://download.savannah.gnu.org/releases/freetype/
下载libtiff:tiff-4.0.0beta6
http://www.libtiff.org/
下载libpng:libpng-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 multithreaded和release multithreaded模式下生成(生成——>配置管理器——>活动解决方案——>选择)。这时,在D:/parsePDF/freetype-2.4.4/objs下就会生成debug_mt和release_mt两个文件夹,freetype244MT.lib和freetype244MT_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,但我们需要的lib和dll 都已经编译出来了:
lib: tiff-4.0.0beta6/libtiff/libtiff.lib
dll:tiff-4.0.0beta6/libtiff/libtiff.dll和libtiff_i.lib
5.编译libpng
下载lpng151.zip解压到D:/parsePDF/lpng151
a.在vs2010中打开D:/parsePDF/lpng151/projects/vstudio/vstudio.sln
b.使用自己下载的zlib,在解决方案-》属性-》通用属性-》项目依赖项中去掉libpng对zlib的依赖
c.在libpng项目-》属性-》配置属性-》vc++目录中添加zlib库的lib(库目录)和include路径(包含目录);并在链接器-》输入-》附加依赖性中添加zdll.lib(自己的源文件中的zlib库)
d.这是libpng对pnglibconf还有依赖,所以先编译pnglibconf,再编译libpng;或者直接编译整个解决方案(这时其他的项目可能有错误,但对libpng不影响),在D:/parsePDF/lpng151/projects/vstudio/Debug或者D:/parsePDF/lpng151/projects/vstudio/Release文件夹(取决于生成时的配置:生成->配置管理器)下将生成libpng15.dll和libpng15.lib
三、构建vs解决方案
1.安装Cmake
2. 在PoDoFo源文件夹中建立ext文件夹,为依赖的库各建立一个文件夹,将生成的库和一些头文件拷贝到对应的文件夹下(这个步骤只是为了使用的方便和思路的清晰,也可以不要)
3.在Cmake中选择podofo的源文件夹为source,新建一个文件夹podofoBin作为build文件夹
4.选择“Advanced”选项,点击下方的configure,第一次的时候会提示选择编译器,这里我们选择VS 2010。
5. 此时会提示:Error:Error in configure process,project 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~