交叉编译windows glib2编译问题

参考官方文档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'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值