PODOFO。Window。Cmake ---- (一) 编译

PODOFO编译准备

podofo是一个可读可写的PDF开源类库,再强调一下是可读可写的

官网地址:http://podofo.sourceforge.net/

编译环境:windows7 VS2010

官网记载,要想编译podofo需要一下条件,这些条件都满足的话,那么podofo所自带的example都可以正常编译

Requirements to compilePoDoFo:

        cppunit (optional)      //可不管

        freetype2                   //必需

        fontconfig (Linux/Unix only)     //windows可不管

        libjpeg (optional)        //必需

        libtiff (optional)           //必需

        libpng (optional)         //必需

        Lua 5.1 (optional, only for podofoimpose Lua imposition plans)   //windows可不管

        zlib                     //必需

添加环境变量PATH:C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin


 

下载CMake:cmake-2.8.2

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


 


下载编译依赖库

  在编译过程中必须用到的库有:zlib,jpeg,freetype三个,但是考虑到今后的需要,还包括了png,tiff的库,如果有需要的话也可以包含测试的cppunit库

(这里没有包含这个库,呵呵,是因为这个库编译的都问题o(╯□╰)o)。使用的编译器是VS2010,用Cmake构建。

 

一、下载及版本

下载PoDoFo :podofo-0.9.0

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

1、libjpge

下载libjpeg:jpegsr8c

http://www.ijg.org/  

假设jpeg解压后的目录


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

copy jconfig.vc jconfig.h


要运行一下 
vsvars32.bat

nmake /f makefile.vc /a
 
 

就会在当前目录()下生成libjpeg.lib。


 

2、libtiff

下载libtiff:tiff-4.0.0beta6

http://www.libtiff.org/   nmake.exe管理编译

tiff-3.8.2.tar.gz是稳定版推荐下载这个版本

1、设置path变量 加入 virtual studio 的vc \bin路径

2、执行VCVARS32.BAT

3、转到tiff源码根目录

4、nmake /f  makefile.vc

会生成lib文件在源目录中的libtiff目录中



 

 //// 3 可以省略//////////////////////////////////////////////////////////////////

3、zlib  在libpng中带有 最后先下libpng看它里面要求什么版本的zlib,我下的libpng要求1.2.4 

 

下载zlib: zlib1.2.8

http://zlib.net/ http://download.chinaunix.net/download/0013000/12241.shtml 

1、使用cmd进入所在目录

2、nmake -f win32/Makefile.msc  便在目录中生成


 

3.Freetype

下载字体引擎ft244.zip:

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

http://download.chinaunix.net/download/0004000/3295.shtml

http://www.freetype.org/

假设解压后目录为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的调试信息)文件一起复制到

/freetype-2.4.4/objs/win32/vc2008文件夹下。

  

5.libpng

 

下载libpng:libpng-1.5.  2        

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

http://download.chinaunix.net/download/0006000/5976.shtml

http://sourceforge.net/projects/libpng/files/

下载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不影响),在\libpng-1.5.2

\projects\vstudio\Debug或者projects/vstudio/Release文件夹(取决于生成时的配置:生成->配置管理器)下将生成libpng15.dll和libpng15.lib  和zlib.lib


配置并编译

0、下载podofo源码

1.编译之前,要先安装cmake 安装文档可参考:http://hi.baidu.com/tubo_true/blog/item/b2df35abe76f85dc7dd92ad5.html

2.新建一个目录如buid在PoDoFo下来存放放生成的vs2010工程

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

4、配置cmake

libjpeg

TIFF 和  zlib

Freetype

7、生成virtual studio 工程

@1 configure

@Genera

便生成vs2010的工程 

 所有的都填写好了之后,在次点击configure,下面的输出框提示configure done!且需要的几个库都找到(也在下方的提示框

显示),这时点击generate,就会在build文件夹中产生podofo的解决方案。

 

8、编译工程

   工程生成后vs2010并不能马上无误运行需要,手动修改。

 

1、 复制头文件

////////////////////源目录及文件/////////////

//******\libpng-1.5.2 目录下

pngconf.h
pnginfo.h
png.h
pnglibconf.h

//****\tiff-3.8.2\libtiff 目录下

tiffio.h

tiffvers.h

tiff.h

tif_config.h

tiffconf.h

///////////////// 复制到达的目的文件夹////////


\podofo-0.8.4\src

///////////////////////////////////////////////


 

2、修写头文件

在pnginfo.h中加入

#include "png"
#include "pngconf.h"
//////////位置一定不能倒过来//////


 

 

3、生成lib

    PODOFO。Window。Cmake ---- (一) 编译_第1张图片

 

运行工程生成lib  生成如图

PODOFO。Window。Cmake ---- (一) 编译_第2张图片

 

 Cmake安装一定要添加 路径到环境变量path,并且不能卸载,或卸载便会报 cmd.exe已退出的错误 !!

      

你可能感兴趣的:(PODOFO。Window。Cmake ---- (一) 编译)