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. html中a标签的常见用法

    html中a标签的常见用法 一.总结 一句话总结: a.页面跳转 b.使用锚点定位 c.下载文件 二.html中<a>标签的用法 转自或参考:html中<a>标签的用法http ...

  2. Qt动画框架The Animation Framework

    动画框架是Kinetic(运动)项目的一部分,它的目标是提供一中简单的方法创建动画的和流畅的GUI.借助Qt动画属性,可以提供非常自由的动画窗体组件和其他对象(QObjects).动画框架也能被用于图 ...

  3. MiniUI表单验证实践

    学习实践: <form id="form2"> <div id="update_pas" style="width:380px&qu ...

  4. Redis数据库漏洞防护

    Redis是一个高性能的数据库,Redis Crackit及Redis安全漏洞本质上是由于Redis自身缺乏安全防护机制,同时Redis的使用者又未曾遵循官方的安全规范所导致的. Redis安全漏洞 ...

  5. centos7搭建maven私服

    Linux:CentOS7安装maven私服Nexus https://blog.csdn.net/plei_yue/article/details/78616267 搭建nexus3版的maven私 ...

  6. CRM 线索 客户 统称为 资源 客户服务管理篇 销售易

    线索 客户 统称为 资源 - 国内版 Binghttps://cn.bing.com/search?FORM=U227DF&PC=U227&q=%E7%BA%BF%E7%B4%A2+% ...

  7. ubuntu下如何开机自动执行自定义脚本?

    答: 将自定义脚本(假设自定义的脚本绝对路径为~/start_test.sh)添加到/etc/init.d/目录下,并更新系统启动项,命令如下: sudo cp ~/start_test.sh /et ...

  8. linux都有哪些运行级别?

    答: 一共有七种运行级别,如下: 0 – System halt i.e the system can be safely powered off with no activity. 1 – Sing ...

  9. Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型

    ylbtech-Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型 1.返回顶部 1. 整型数值类型(C# 参考) 2019/10/22 “整型数值类型”是“简单类型”的 ...

  10. jenkins下载插件Git Parameter插件

    登陆jekinse -> 点击左边菜单列表 -> 点”系统管理“ -> 下拉点”插件管理“ -> 选“可选插件”,在右上角过滤框输入”Git Parameter” -> ...