libhura的建立
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的建立的更多相关文章
- [原] 利用 OVS 建立 VxLAN 虚拟网络实验
OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...
- Atitit.如何建立研发体系
Atitit.如何建立研发体系 组织,流程,prj..Mana oppm 发管理是一个完整的管理体系,从结构上来讲,它主要由四个方面的内容构架而成:组织结构与岗位设置 管理流程与工作流程..项目及管 ...
- 在 Linux 上使用 Jexus + Mono 建立 Asp.Net 网站.
godaddy 买了个net空间,一点也不好用. 几个G的数据, 上传数据只有几kb , 想用 ssh 登录上去用 wget 下载,也不行 windows的主机貌似没有 ssh 功能... 后来实在忍 ...
- ASP.NET Core管道深度剖析(4):管道是如何建立起来的?
在<管道是如何处理HTTP请求的?>中,我们对ASP.NET Core的请求处理管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.这样一 ...
- 读书笔记--SQL必知必会--建立练习环境
书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...
- 【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误
SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS ...
- 黑马程序员——ARC机制总结和用ARC建立模型
ARC 全称:Automatic Reference Counting 使用ARC 只需要在建立一个新的项目的时候把 下面的√打上 Xcode5以后都会默认建议开发者使用ARC机制 新的项目中如果有部 ...
- gRPC源码分析2-Server的建立
gRPC中,Server.Client共享的Class不是很多,所以我们可以单独的分别讲解Server和Client的源码. 通过第一篇,我们知道对于gRPC来说,建立Server是非常简单的,还记得 ...
- word 2010 建立多级结构和目录
点击“开始”中的“样式”中右下角按钮 点击弹出窗口中最下方第三个按钮 点击“推荐”选项卡,再选择要显示的标题,然后点击“显示”.然后按照需要,分别把“标题3”“标题4”等显示.最后点确定即可. ...
随机推荐
- ActiveMq 本地安装及启动(Windows)
首先下载MQ的安装包 http://activemq.apache.org/download.html 1.点击最新版本的ActiveMQ的 2.这里有窗户版本和Linux的的版本,这里我们选择窗口版 ...
- TreeFrog Framework : High-speed C++ MVC Framework for Web Application http://www.treefrogframework.org
TreeFrog Framework : High-speed C++ MVC Framework for Web Application http://www.treefrogframework.o ...
- GIS地理处理工具案例教程-成本距离
GIS地理处理工具案例教程-成本距离 关键词:最短路径,成本路径,最佳路径,最优路径,路径分析,选线分析 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq ...
- java和c# md5加密
MD5加密的方式有很多,加盐的方式更多,最近项目需要java和c#加密结果一致,形成方法如下: 1.c#加密方法/// <summary> /// MD5 加密字符串 /// </s ...
- (E2E_L2)GOMfcTemplate在vs2017上的运行并融合Dnn模块
GOMfcTemplate一直运行在VS2012上运行的,并且开发出来了多个产品.在技术不断发展的过程中,出现了一些新的矛盾:1.由于需要使用DNN模块,而这个模块到了4.0以上的OpenCV才支持的 ...
- SQLServer系统视图sysobjects中type字段说明
SQLServer中系统视图sysobjects中type字段的对象类型: AF = 聚合函数 (CLR) C = CHECK 约束 D = DEFAULT(约束或独立) F = FOREIGN KE ...
- 软件定义网络基础---SDN数据平面
主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数 ...
- RabbitMQ 入门教程(PHP版) 延迟队列,延迟任务
延迟任务应用场景 场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时. 场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单. 场景三:过1分钟给新 ...
- php环境选择
第一个 PHPStudy 推荐这个.简单好用. 链接:https://pan.baidu.com/s/1yWRDjfnadkkUE-JX5pqZmg 提取码:4imw 第二个 PHPnow 第三 ...
- python通过socket实现多个连接并实现ssh功能详解
python通过socket实现多个连接并实现ssh功能详解 一.前言 上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户 ...