libharu 是一个开源的导出pdf的库,在编译libharu需要用到zlib库和libpng库(libpng 依赖于zlib库)。
如果项目中不需要导出带有图片的pdf,可以将涉及到"png.h"的文件自行删除。

转 lemianli (这个方法是比较简单的,同时编译libpng和zlib库)
编译libpng 和libz库:
1. 先下载 libpng(http://sourceforge.net/projects/libpng/files/)和libz(http://zlib.net/zlib-1.2.7.tar.gz),将libpng解压,如C:\workspace\libpng\。
2. 将libz解压,改名zlib放到libpng同级目录,如C:\workspace\zlib。
3. 进入libpng\projects\visualc71\,用visual studio打开工程文件,方案中会有三个子工程:libpng, pngtest, zlib。直接编译,不出意外会在Win32_DLL_Debug目录下和Win32_DLL_Debug\ZLib目录下生成zlib1d.dll, libpng15d.dll, libpng.lib和zlib.lib等库文件。
4.若报错,拷贝scripts/pnglibconf.h.prebuilt到源码目录,改名为pnglibconf.h

转 http://www.cnblogs.com/sanghg/p/5487509.html(该方法编译较复杂)
#编译方法一#
- 解压源码文件到指定目录,例如 x:\zlib
- 打开VS2015的Developer Command Prompt for VS2015工具
- 切换到x:\zlib\contrib\masmx86目录,如果想编译x64的,可以进入masmx64目录,我这里只使用32位
- 执行bld_ml32.bat文件,静待片刻会在文件目录中产生4个文件
- 将生成文件中的inffas32.obj和match686.obj文件复制到根目录 x:\zlib下
- 将Developer Command Prompt for VS2015工具目录切换到根目录 x:\zlib
- 执行nmake命令
```
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"  
```
- 编译成功以后,就会在根目录产生一系列文件,其中zdll.lib和zlib1.dll就是我们需要的文件
#编译方法二#
- 解压源码文件到指定目录,例如 x:\zlib
- 打开VS2015的Developer Command Prompt for VS2015工具
- 切换到x:\zlib\contrib\masmx86目录,如果想编译x64的,可以进入masmx64目录,我这里只使用32位
- 执行bld_ml32.bat文件,静待片刻会在文件目录中产生4个文件
- 将生成文件中的inffas32.obj和match686.obj文件复制到根目录 x:\zlib下
- 复制x:\zlib\contrib\vstudio\v11到x:\zlib\contrib\vstudio\v14
- 用Visual Studio 2015 IDE打开x:\zlib\contrib\vstudio\v14\zlibvc.sln并编译
编译过程中可能会出现以下几个问题
1.error LNK2026: module unsafe for SAFESEH image
修改属性/linker/Advenced/Image has safe Exception Handles 为No
2.fatal error LNK1118: syntax error in ‘VERSION’ statement
打开zlibvc.def文件VERSION 修改为1.28即可

工程的创立

  • 在 libpng 和 zlib 的目录下分别创立 include文件夹  和 lib问价夹
  • include 是存放同级目录下的 .h 和 .c 文件的
  • lib 是用来存放进静态库的(.lib)

对于要用到这两个库的工程,主要需要做三件事:
1. C/C++常规->附加包含目录中把包含png.h等头文件的目录加进来
2. 链接器->输入->附加依赖项中加zlib.lib;libpng.lib。
3.通用属性->VC++ 目录->库目录中把放着zlib.lib和libpng.lib的目录加进来。
#总结#
1、新建项目 选择输出dll,空项目
2、将libharu解压 将src和include文件加入到项目中
3、加入libpng和zlib库文件
1>C/C++常规->附加包含目录中把包含png.h等头文件的目录加进来
2> 链接器->输入->附加依赖项中加zlib.lib;libpng.lib。
3>.通用属性->VC++ 目录->库目录中把放着zlib.lib和libpng.lib的目录加进来。
4、编译后在 ~~~~\Visual Studio 2008\Projects\{project_name}\Debug\ 查找生成dll和lib文件
5、demo中有实现各种效果的源码,可自行测试

libhura的建立的更多相关文章

  1. [原] 利用 OVS 建立 VxLAN 虚拟网络实验

    OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...

  2. Atitit.如何建立研发体系

    Atitit.如何建立研发体系 组织,流程,prj..Mana  oppm 发管理是一个完整的管理体系,从结构上来讲,它主要由四个方面的内容构架而成:组织结构与岗位设置 管理流程与工作流程..项目及管 ...

  3. 在 Linux 上使用 Jexus + Mono 建立 Asp.Net 网站.

    godaddy 买了个net空间,一点也不好用. 几个G的数据, 上传数据只有几kb , 想用 ssh 登录上去用 wget 下载,也不行 windows的主机貌似没有 ssh 功能... 后来实在忍 ...

  4. ASP.NET Core管道深度剖析(4):管道是如何建立起来的?

    在<管道是如何处理HTTP请求的?>中,我们对ASP.NET Core的请求处理管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.这样一 ...

  5. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  6. 【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误

    SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS ...

  7. 黑马程序员——ARC机制总结和用ARC建立模型

    ARC 全称:Automatic Reference Counting 使用ARC 只需要在建立一个新的项目的时候把 下面的√打上 Xcode5以后都会默认建议开发者使用ARC机制 新的项目中如果有部 ...

  8. gRPC源码分析2-Server的建立

    gRPC中,Server.Client共享的Class不是很多,所以我们可以单独的分别讲解Server和Client的源码. 通过第一篇,我们知道对于gRPC来说,建立Server是非常简单的,还记得 ...

  9. word 2010 建立多级结构和目录

    点击“开始”中的“样式”中右下角按钮   点击弹出窗口中最下方第三个按钮   点击“推荐”选项卡,再选择要显示的标题,然后点击“显示”.然后按照需要,分别把“标题3”“标题4”等显示.最后点确定即可. ...

随机推荐

  1. 文献阅读 | The single-cell transcriptional landscape of mammalian organogenesis | 器官形成 | 单细胞转录组

    The single-cell transcriptional landscape of mammalian organogenesis 老板已经提了无数遍的文章,确实很nb,这个工作是之前我们无法想 ...

  2. Jenkins入门【转】

    一.Jenkins概述 二.安装Jenkins https://pkg.jenkins.io/redhat-stable/ sudo wget -O /etc/yum.repos.d/jenkins. ...

  3. ByteBuffer: 图解ByteBuffer(转)

    ByteBuffer前前后后看过好几次了,实际使用也用了一些,总觉得条理不够清晰. <程序员的思维修炼>一本书讲过,主动学习,要比单纯看资料效果来的好,所以干脆写个详细点的文章来记录一下. ...

  4. 使用TFA启动需要知道哪些概念?

    1. Boot stage BL1,BL2,BL31,BL32,BL33 2. Exception level EL3, EL1S, EL2 3. 那么放在表格里比较一下咯 Boot stage Ex ...

  5. CSS清除浮动方法集合

    CSS清除浮动方法集合 一.浮动产生原因   -   TOP 一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了. ...

  6. 使用AWS Lambda,API Gateway和S3 Storage快速调整图片大小

    https://www.obytes.com/blog/2019/image-resizing-on-the-fly-with-aws-lambda,-api-gateway,-and-s3-stor ...

  7. Java基础 main 参数String[] args的用法

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  8. npm WARN deprecated fsevents windows

    更新下 使用yarn貌似会帮助跳过这个问题: info fsevents@2.1.2: The platform "win32" is incompatible with this ...

  9. JDBC DataSource

    What is DataSource? 作为 DriverManager 设施的替代项,DataSource 对象是获取连接的首选方法.实现DataSource 接口的对象通常在基于 Java(TM) ...

  10. 关于haproxy的一些属性和acl 规则

    首先是haproxy.cfg文件的基本标注 当然实际配件没有下面这个复杂,可以根据需要自行增减. global log 127.0.0.1 local1 maxconn 65000 #最大连接数 ch ...