Windows下编译glib库的新方法

本文介绍了如何在Windows环境下使用MSYS2解决编译glib库时遇到的问题,包括下载MSYS2,安装mingw,修改meson.build文件以避免编译错误,以及尝试使用gvsbuild进行编译但遇到编码问题的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章为什么说是新方法呢 ? 因为之前有一篇文章是通过修改 meson.build文件编译通过的, 不过上次编译dll文件,我在使用的时候会报无法定位函数的入口。这两天仔细看官网的介绍,说在windows下可以使用msys2来编译,就照着官网的说明在来一次吧, 看看这次编译出来的dll还会不会有问题。

MYSY2的官网为 https://www.msys2.org/

首页有Download the installer: msys2-x86_64-20210228.exe 下载地址:   https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20210228.exe

下载之后安装很顺利,默认安装到 了C:\msys64目录,启动应用后进入控制台界面, 下来的操作就和linux shell控制台一样了。

安装好MSYS2之后,需要安装mingw,具体参考 https://www.gtk.org/docs/installations/windows/  上面的介绍

MSYS2会自带一个pacman的工具, 类似centOS中的yum,Ubuntu中的apt-get。

安装以下的一些基础工具:

pacman --needed --noconfirm -S meson git diffutils automake autoconf make gcc libtool unzip
pacman --needed --noconfirm -S intltool pcre-devel base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-pcre
pacman --needed --noconfirm -S mingw-w64-x86_64-gtk3
pacman --needed --noconfirm -S mingw-w64-x86_64-glade
pacman --needed --noconfirm -S mingw-w64-x86_64-python3-gobject

安装完毕后解压glib到安装目录中的 “/home/用户名/glib” 目录,执行  meson  build命令

如果碰到下面的错误,请修改 meson.build 文件,把所有if host_system == 'windows' 改为 if host_system == 'windows' or host_system == 'cygwin' 或者 改为 if ['cygwin', 'windows'].contains(host_system)

subprojects/libffi/src/meson.build:71:2: ERROR: Problem encountered: Unsupported pair: system "cygwin", cpu family "x86_64"

glib-2.58.0-win64-vs2017-v141-sdk10.0.17134.12 csdn-tags: glib-2.58.0 x64 vs2017v141 sdk17134 glib-2.58.0及其依赖包: bzip2-1.0.6-win64-vc141.zip glib-2.58.0-win64-vc141.zip libiconv-1.15-win64-vc141.zip libintl-0.19.8.1-win64-vc141.zip pcre-8.42-win64-vc141.zip zlib1-1.2.11-win64-vc141.zip 其中: glib依赖 libintl pcre zlib intl依赖 libiconv pcre依赖 bzip2 zlib glib编译方法: 1,准备工具:msvc2017,python3,python需要安装 meson 和 ninja,直接pip install即可。 2,准备glibglib需要dirent的支持,否则在编译时会提示无法解析外部符号的错误。解决方法为: 将根目录\build\win32\dirent目录下的二个C文件和一个H文件拷贝到根目录\glib目录下。 3,修改根目录\glib目录下的meson.build文件,字符全是英文半角: glib_sub_headers = files处添加: glib_sub_headers = files( 'dirent.h', glib_sources = files处添加: glib_sources = files( 'dirent.c', 'wdirent.c', 打开vs2017的:适用于 VS 2017的 X64 本机工具命令提示: 或者 call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 假设python安装在D:\platform\python3 则,Scripts目录一定要添加,否则meson.py会找不到: set PYTHONPATH=D:\platform\python3 set PATH=%PATH%;%PYTHONPATH%;%PYTHONPATH%\Scripts\ 然后,创建编译目录,meson用一个新的目录编译源码: mkdir glib-2.58.0-win64-vc141 cd glib-2.58.0-win64-vc141 meson.py ..\glib-2.58.0 --prefix=D:\platform\glib --buildtype=minsize ninja ninja install 就可以完美编译。 欢迎朋友们下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

langeldep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值