windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用

这篇具有很好参考价值的文章主要介绍了windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考:
https://blog.csdn.net/sspdfn/article/details/104244306
https://blog.csdn.net/yaoyuanyylyy/article/details/17436303
https://blog.csdn.net/wxlfreewind/article/details/106492253

前期进行了各种摸索,由于Podofo依赖库比较多,所依赖的库都需要编译为Mingw版本,参考以上三篇博客,因为环境原因一直出现各种问题,直到。。。发现了Msys2构建平台

** 想省事的同学可以直接下载编译好的版本 (32bit) **:https://download.csdn.net/download/wml00876/88498301

  • MSYS2 官网

下载与安装参考:
https://blog.csdn.net/qq_41898196/article/details/130102966
https://blog.csdn.net/B11050729/article/details/131719012
进入Mingw终端:
windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows
配置好环境后,打开目标终端,通过pacman指令安装Podofo的依赖库,部分指令如下:

# pacman -S mingw-w64-i686-toolchain
# pacman -S  mingw-w64-i686-cmake-gui
# pacman -S	 mingw-w64-i686-cmake
# pacman -S mingw-w64-i686-libidn
# pacman -S  mingw-w64-i686-freetype
# pacman -S  mingw-w64-i686-libpng
# pacman -S  mingw-w64-i686-libtiff
# pacman -S  mingw-w64-i686-libxml2
# pacman -S  mingw-w64-i686-zlib
# pacman -S mingw-w64-i686-bzip2

如果需要其它库可以自行安装;


  • PoDoFo 官网GitHub


由于 pacman仓库中维护的开源库都是比较新的版本,openssl为3.x版本,所以podofo选择较新版本0.10.x
windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows

windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windowswindows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows

0.10.x以后才可支持openssl 3.0
windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows

运行事例时发现,podofo并不能支持pacman仓库中的openssl版本3.1.x,虽然可以编译构建,但在程序中调用pdf库时,会报错:
terminate called after throwing an instance of 'PoDoFo::PdfError'
  what():  PdfErrorCode::InvalidHandle, An invalid handle was passed or returned, but initialized data was expected.
Callstack:t#0 Error Source: main\PdfEncrypt.cpp(66), Information: Unable to load legacy providers in OpenSSL >= 3.x.x

  • 编译Openssl 3.0.x版本(我选择的版本为3.0.12) 参考链接

在MakeFile目录中打开终端,执行命令:

$ mingw32-make.exe 
$ mingw32-make.exe install

成功后,openssl安装在以下目录:
windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windowswindows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windowswindows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows

  • 编译libjpeg

pacman 仓库中有 mingw-w64-i686-libjpeg-turbo 3.0.1-1这个包,使用这个版本的jpeg库make时会报错:

: error: cannot convert 'PoDoFo::PdfIndirectObjectList' to 'HANDLE' {aka
'void*'}
  500 |         && (indirectobj = GetObject(*m_objects, ref)) != nullptr)
      |                                     ^~~~~~~~~~
      |                                     |
      |                                     PoDoFo::PdfIndirectObjectList

由于时间关系没有研究 mingw-w64-i686-libjpeg-turbo 3.0.1-1 与 jpep官网上的版本有何区别,所以直接在官网下载了 jpegsr9e 版本,进行编译:
Msys2终端进入解压目录,执行以下命令:

$ ./configure
$ mingw32-make.exe 
$ mingw32-make.exe install

完成后,相关文件直接安装到Msys2环境中,目录如下:
windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windowswindows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windowswindows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows


  • 下载PODOFO源码:

下载源码后,解压到 Msys2环境中的home(其它目录也可以,根据个人习惯)
windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows

  • 打开Cmake-gui

windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows

如果依赖库提前安装后,Cmake会自动读取到(openssl如果无法读取到,手动配置一下)

如果加载项目失败,考虑C:\msys64\mingw32\bin添加到系统环境变量中
windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows

可能第一次加载需要选择编译器

windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windowswindows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows

  • 执行: configure 、Generate

遇到问题,查看配置项中的红色部分

  • 终端进入build目录,执行:

$ mingw32-make.exe 
$ mingw32-make.exe install

构建结束后,查看安装目录:

windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windowswindows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windowswindows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用,Windows,C++,windows文章来源地址https://www.toymoban.com/news/detail-742499.html

到了这里,关于windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ai-WB2-32S在window下使用vs 和 msys2编译以及烧录

    应为电脑虚拟机不方便使用vs(有点卡),所以博主搜集了一些资料选择在windows下进行编译和烧录,过程虽然复杂,但是对于电脑配置不太高的用户挺友好的。 关于安装vscode博主就不献丑了,大家可以参考下面链接: vscode安装教程 关于msys2的安装,大家可以参考下面链接:

    2024年03月18日
    浏览(44)
  • XMake学习笔记(1):Windows(MSYS2)下MinGW-w64环境搭建和XMake安装

    以前写的C++基本都是 C with STL ,大多是面向过程的算法题,或者比较小的项目,然后经常报各种编译错误(对编译原理不熟),经常把人搞到崩溃,搞不懂构建、链接之类的东西。 现在开始记录一下XMake的学习笔记,记录一些学习过程中踩的坑,在这篇文章,你将学习到Win

    2024年02月01日
    浏览(86)
  • Openssl数据安全传输平台003:Protobuf-3.17.2的编译-Windows:cmake+VS2022/ Centos7/8: make

    https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/main/Protobuf 0.2.1 Centos7 https://www.bilibili.com/video/BV1we411R7sS/?vd_source=3353f83539e46042d8cf76efb177a8e4 06-Protobuf在Centos7系统上的安装:版本protobuf3.17.2 0.2.2 windows https://www.bilibili.com/video/BV1rw411X7mY/?spm_id_from=333.999.0.0vd_source=3353f8353

    2024年02月06日
    浏览(63)
  • Openssl数据安全传输平台003:Protobuf-3.17.2的编译与部署:Windows:cmake+VS2022/ Centos7/8: make

    https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/main/Protobuf 0.2.1 Centos7 https://www.bilibili.com/video/BV1we411R7sS/?vd_source=3353f83539e46042d8cf76efb177a8e4 06-Protobuf在Centos7系统上的安装:版本protobuf3.17.2 0.2.2 windows https://www.bilibili.com/video/BV1rw411X7mY/?spm_id_from=333.999.0.0vd_source=3353f8353

    2024年02月07日
    浏览(49)
  • Qt+GDAL开发笔记(一):在windows系统mingw32编译GDAL库、搭建开发环境和基础Demo

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131931309 上一篇:没有了 下一篇:敬请期待…   麒麟系统上做全球北斗定位终端开发,调试工具要做一个windows版本方便校对,北斗GPS发过来的是大地坐标,应用需要的是经纬度坐标

    2024年02月15日
    浏览(73)
  • windows下msys2编译64位的ffmpeg源码

    目前遇到过两次需求,需要编译ffmpeg源码。网上下载的编译好的源码里面可能不全,很多时候需要自行编译源码。本文介绍自行编译ffmpeg64位源码(32位通过相似的方式为编译成功,不知道原因) 环境: 2023.5.4下载的最新版msys2 ffmpeg 4.3.2源码 windows操作系统 首先需要msys2软件和

    2024年02月03日
    浏览(42)
  • 2023最新Windows编译ffmpeg详细教程,附msys2详细安装配置教程

    msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。 类似的跨平台编译套件有: msys , cygwin , mingw 优势: 相对于 cygwin 和 msys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所

    2024年02月13日
    浏览(42)
  • [QT]+[Cmake]+[openCV]配置环境报错:mingw32-make: *** [Makefile:165: all] Error 2等问题的解决办法

    当前作者各软件的版本:QT5.14.2 + CMAKE 3.29.0 +openCV 4.5.4 Qt配置OpenCV教程,亲测已试过(详细版)_qt opencv-CSDN博客 配置的时候主要参考了以上文章 出现的第一个问题是在cmake configure的时候卡在 FFMPEG: Downloading ffmpeg_version.cmake from https://raw.githubusercontent.com/opencv/opencv_3rdparty/7dd0d4

    2024年04月26日
    浏览(44)
  • 关于 Qt在windows使用mingw32编译器时从Qt5.9切换至Qt5.12出现“C2001:常量中有换行符“不修改编码 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131901444 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)   研发项目先

    2024年02月15日
    浏览(58)
  • Windows环境利用QT+CMake编译mingw版本的opencv

    Opencv官网没有提供mingw版本的opencv库,所以需要自己编译,下面是编译过程,32位64位方法类似。 可以直接下载编译好的mingw版本opencv4.4: 使用CMAKE3.22+QT5.13编译后的opencv4.4(32位的)资源-CSDN文库 如果网络不好,可能会需要自己手动下载下面的文件:  opencv_videoio_ffmpeg.dll+ope

    2024年02月13日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包