如何解决在Windows上使用介子和MSYS2构建GTK3失败
尝试在these instructions之后在Windows上使用MSYS2从git源构建稳定的GTK3 3.24.21版本。我已经从tar.xz源代码和MSYS2 configure/make
成功地构建了这个版本,所以我知道我具有所有必需的依赖项。
克隆gtk存储库后,我签出所需的版本。然后按照说明运行meson
。
git checkout -b issue1234 3.24.21
meson setup --prefix /opt/gtk3 _build
由于某些原因,meson
无法找到pkg-config
或cmake
两者,它们都存在于PATH中。它还认为,尽管存在足够的版本,但仍需要构建glib2
的最新版本。当meson
尝试构建glib2
时,它会爆炸:
subprojects/glib/meson.build:1680:2: ERROR: Entry _WIN32_WINNT not in configuration data.
_WIN32_WINNT
可能是在以下glib/meson.build
块中设置的(这是文件中唯一被设置的位置):
# Windows SDK requirements and checks
if host_system == 'windows'
# Check whether we're building for UWP apps
code = '''
#include <windows.h>
#if !(WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP))
#error "Not building for UWP"
#endif'''
if cc.compiles(code,name : 'building for UWP')
glib_conf.set('G_WINAPI_ONLY_APP',true)
# We require Windows 10+ on WinRT
glib_conf.set('_WIN32_WINNT','0x0A00')
else
# We require Windows 7+ on Win32
**glib_conf.set('_WIN32_WINNT','0x0601')**
endif
endif
glib/meson.build
中该块的最后一行是炸弹所在的地方:
if has_syspoll and has_systypes
poll_includes = '''
#include<sys/poll.h>
#include<sys/types.h>'''
elif has_winsock2
poll_includes = '''
#define _WIN32_WINNT @0@
#include <winsock2.h>'''.format(glib_conf.get('_WIN32_WINNT'))
关于发生了什么的任何想法?为什么找不到pkg-config/cmake
?为什么需要构建glib2
?以及为什么构建失败?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。