最近在做项目的时候需要用到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相关推荐

  1. 【VS实践】VS解决方案中出现无法生成DLL文件

    前言: 这几天在学习牛腩新闻发布系统,突然发现标准的过程原来是从D层倒着往U层敲,在敲的过程中,遇到了一个问题:D层生成的DLL文件,在B层和U层中使用不了! 从早上10:00~15:30,自己弄了好 ...

  2. linux 生成dll文件,Linux和Windows平台 动态库.so和.dll文件的生成

    Linux动态库的生成 1. 纯cpp文件打包动态库 将所有cpp文件和所需要的头文件放在同一文件夹,然后执行下面命令 gcc -shared - fpic *.c -o xxx.so: g++ -s ...

  3. 一分钟详解VS中快速生成dll和lib方法

    视觉IMAX的第43篇文章 问题:如果我们在Visual Studio工程中,想要快速学习如何生成dll和lib,有什么小技巧呢? 方法:在VS工程中添加新项目,操作具体方法如图1.图2所示. 经过上 ...

  4. vs2012中程序集生成无法自动在网站Bin目录下生成Dll文件?(已解决!)

    最近,突然发现生成程序集后,网站bin目录下dll没有更新,也没有自动生成dll文件,通过近半个小时的摸索和实验,找到了解决方法: 1.右键网站,不是项目,选择[属性页],在左侧[引用]中如果没有,就 ...

  5. 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 ...

  6. VS2008生成DLL文件的方法、引用dll文件以及意义

    一 VS2008生成dll文件的方法     有两种方法:     1:傻瓜式操作     打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假 ...

  7. matlab2012生成dll,64位win7下vc2010如何調用matlab2012a中生成的dll文件

    本文說是原創,但核心部分是參考http://blog.sina.com.cn/s/blog_a5fdbf0101018n91.html(大家可以先看看這篇文章),在此再次感謝debug童鞋.debug ...

  8. matlab程序生成.dll,matlab 调用fortran生成DLL

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 版本:matlab 2010b,vs2008+IVF11.0 对于简单的问题,例如求个c=a+b的,用vs2008+IVF11.0生成DLL和用matla ...

  9. VS2010中使用CL快速 生成DLL的方法

    方案一: 1.命令行中输入cl example.cpp,生成example.obj和example.lib文件.有可能还会提示"没有入口点"的错误.这是因为我们的CPP中是要生成d ...

最新文章

  1. 人工智能基础-向量的基本几何意义
  2. 数据库系统为什么使用三级模式结构
  3. access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化
  4. 人工智能——命题逻辑与谓词逻辑
  5. Oracle用 odp.net 时出现 Oracle.DataAccess.Client.OracleConnection的类型初始值设定项引发异常 问题的解决...
  6. 线性表、顺序表和链表,你还分不清?
  7. Balsamiq Mockups 实例3
  8. python学习笔记(十一):网络编程
  9. 阿里星专访丨星罡:因为期待,你需要更出色!
  10. python识别数字程序_Python识别处理照片中的条形码
  11. Pr入门教程模板的下载和使用学习
  12. 【PostMan】测试Post请求
  13. PHP-FPM 配置文件详解
  14. The Little Schemer 笔记(第一章)
  15. java 碳架山地车寿命_关于自行车的4大“谣言” 铝合金车架寿命只有五年
  16. 微信群控系统源码的实现原理,核心源码实现,核心框架。
  17. Android 人民币符号少一横问题解决方案
  18. java 九大行星运行_html5 canvas太阳系九大行星运行动态图代码
  19. DVWA通过攻略之SQL注入
  20. 不关闭Selinux\Firewalld的情况下OpenSSH 9.0/9.1/9.2升级说明——筑梦之路

热门文章

  1. C语言 求pow()函数,x的y次方
  2. 推荐系统在视频网站中的应用
  3. SRM 590 DIV1
  4. matlab solve函数计算三元一次方程组
  5. 基于verilog自动售货机设计
  6. 教程- VTK.js的基本介绍
  7. Python基础进阶:从函数到高级魔法方法
  8. vue设置img大小的属性_vue-quill-editor图片大小修改
  9. 浪潮存储“内外兼修”
  10. 【HMS Core】REST获取运动健康APP数据的问题