mupdf 生成dll
最近在做项目的时候需要用到mupdf 这个库,该库可以从官网下载。我这里下载的是mupdf-1.17.0-source.tar.gz。
我的系统环境是win11 64位。开发环境是vs2017+qt5.14.2。由于直接使用libmupdf.lib 会导致生成的64位Release程序增加40M,所以想使用dll,找了好多资料,感觉都不理想,所以自己想编译mupdf源文件生成dll。
直接编译的话会出现错误提示 “无法找到 v142 的生成工具”,
把“平台工具集”,所有子项目中的V142(未安装) 改成Visual Studio2017(v141),32位,64位都改
选择“重定位解决目标”,然后编译程序。
这里我先选择了Release Win32编译,直接编译X64会报错,好像跟bin2coff这个有关
32位编译成功之后,
再编译64位,也成功生成,这里我们可以看到已经生成了libmupdf.lib,这个libmupdf.lib可以直接应用与自己的项目中,但是生成的文件会多40M。
下面是生成dll的步骤:
在项目libmupdf中,添加libmupdf.def文件,编辑libmupdf.def文件
这里,我的项目就用到下面这些函数,所以只导出了这些。
LIBRARY libmupdfEXPORTSfz_register_document_handlersfz_open_documentfz_drop_documentfz_drop_contextfz_scalefz_pre_rotatefz_new_pixmap_from_page_numberfz_pixmap_widthfz_pixmap_heightfz_count_pagesfz_pixmap_samplesfz_caught_messagefz_push_tryfz_do_tryfz_do_catchfz_new_context_impfz_device_rgb
修改libmupdf项目生成为"动态库(.dll)"
然后生成,可以看到目录下已经有了 libmupdf.dll
我们可以通过vs2017命令行工具 ,dumpbin 命令来查看导出是否成功
然后,我们就可以把 libmupdf.dll 应用到我们自己的项目中了。
相关生成的dll,lib,以及头文件我上传到了 https://download.csdn.net/download/ren062/86920213。
mupdf 生成dll相关推荐
- 【VS实践】VS解决方案中出现无法生成DLL文件
前言: 这几天在学习牛腩新闻发布系统,突然发现标准的过程原来是从D层倒着往U层敲,在敲的过程中,遇到了一个问题:D层生成的DLL文件,在B层和U层中使用不了! 从早上10:00~15:30,自己弄了好 ...
- linux 生成dll文件,Linux和Windows平台 动态库.so和.dll文件的生成
Linux动态库的生成 1. 纯cpp文件打包动态库 将所有cpp文件和所需要的头文件放在同一文件夹,然后执行下面命令 gcc -shared - fpic *.c -o xxx.so: g++ -s ...
- 一分钟详解VS中快速生成dll和lib方法
视觉IMAX的第43篇文章 问题:如果我们在Visual Studio工程中,想要快速学习如何生成dll和lib,有什么小技巧呢? 方法:在VS工程中添加新项目,操作具体方法如图1.图2所示. 经过上 ...
- vs2012中程序集生成无法自动在网站Bin目录下生成Dll文件?(已解决!)
最近,突然发现生成程序集后,网站bin目录下dll没有更新,也没有自动生成dll文件,通过近半个小时的摸索和实验,找到了解决方法: 1.右键网站,不是项目,选择[属性页],在左侧[引用]中如果没有,就 ...
- c 调用java的dll_Windows下java调用c的dll动态库--Dev_Cpp编译c生成dll
1.eclipse下建立一个HelloJNI.java内容如下: package JNI; public class HelloJNI { static { System.out.println(&q ...
- VS2008生成DLL文件的方法、引用dll文件以及意义
一 VS2008生成dll文件的方法 有两种方法: 1:傻瓜式操作 打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假 ...
- matlab2012生成dll,64位win7下vc2010如何調用matlab2012a中生成的dll文件
本文說是原創,但核心部分是參考http://blog.sina.com.cn/s/blog_a5fdbf0101018n91.html(大家可以先看看這篇文章),在此再次感謝debug童鞋.debug ...
- matlab程序生成.dll,matlab 调用fortran生成DLL
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 版本:matlab 2010b,vs2008+IVF11.0 对于简单的问题,例如求个c=a+b的,用vs2008+IVF11.0生成DLL和用matla ...
- VS2010中使用CL快速 生成DLL的方法
方案一: 1.命令行中输入cl example.cpp,生成example.obj和example.lib文件.有可能还会提示"没有入口点"的错误.这是因为我们的CPP中是要生成d ...
最新文章
- 人工智能基础-向量的基本几何意义
- 数据库系统为什么使用三级模式结构
- access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化
- 人工智能——命题逻辑与谓词逻辑
- Oracle用 odp.net 时出现 Oracle.DataAccess.Client.OracleConnection的类型初始值设定项引发异常 问题的解决...
- 线性表、顺序表和链表,你还分不清?
- Balsamiq Mockups 实例3
- python学习笔记(十一):网络编程
- 阿里星专访丨星罡:因为期待,你需要更出色!
- python识别数字程序_Python识别处理照片中的条形码
- Pr入门教程模板的下载和使用学习
- 【PostMan】测试Post请求
- PHP-FPM 配置文件详解
- The Little Schemer 笔记(第一章)
- java 碳架山地车寿命_关于自行车的4大“谣言” 铝合金车架寿命只有五年
- 微信群控系统源码的实现原理,核心源码实现,核心框架。
- Android 人民币符号少一横问题解决方案
- java 九大行星运行_html5 canvas太阳系九大行星运行动态图代码
- DVWA通过攻略之SQL注入
- 不关闭Selinux\Firewalld的情况下OpenSSH 9.0/9.1/9.2升级说明——筑梦之路