参考官方文档GLib – 2.0: Cross-compiling the GLib package编译,遇到如下两个问题:
1、编译的时候遇到meson.build:2213:0: ERROR: Subproject exists but has no meson.build file报错
解决方法:参考 https://gitlab.gnome.org/GNOME/glib/-/issues/2716,原来是由于GNOME / GLib · GitLab下载的源代码中默认没有gvdb源码,从Index of /sources/glib/
下载的源码是包括gvdb的,所以从后面链接中下载源码后解决
2、遇到链接报错如下
-mingw32/sys-root/mingw/lib/libz.dll.a -ldl -lintl -lshlwapi -ldnsapi -liphlpapi -lws2_32 -lintl -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -Wl,--end-group
/usr/lib/gcc/x86_64-w64-mingw32/12.2.1/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libws2_32.a(lib64_libws2_32_a-WspiapiLoad.o):(.text+0xcd): undefined reference to `__strcpy_chk'
解决方法:
修改官方如下参数中的c_link_args=[],修改为c_link_args = ['-fstack-protector','-lssp'],即可编译成功
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[properties]
c_args = []
c_link_args = ['-fstack-protector','-lssp']
[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
ld = 'x86_64-w64-mingw32-ld'
objcopy = 'x86_64-w64-mingw32-objcopy'
strip = 'x86_64-w64-mingw32-strip'
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
windres = 'x86_64-w64-mingw32-windres'