You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Meson编译WinAPI版Hello-World程序失败求助

解决Meson构建Windows GUI程序的链接错误问题

问题根源

你的代码使用WinMain作为入口函数(Windows GUI程序标准入口),但Meson默认会将可执行文件标记为控制台子系统程序:

  • 链接器会强制寻找main函数作为入口,因此抛出LNK2019未定义符号错误
  • 默认链接参数包含/SUBSYSTEM:CONSOLE,不符合GUI程序的要求

解决方案

修改meson.build,添加gui_app : true选项,明确告诉Meson这是一个Windows GUI应用:

project('slim', 'c',
  version : '0.1',
  default_options : ['warning_level=3'])

exe = executable('slim', 'slim.c',
  install : true,
  gui_app : true  # 核心配置:标记为GUI应用
)

test('basic', exe)

配置说明

gui_app : true会自动完成两项关键操作:

  1. 将链接器参数中的/SUBSYSTEM:CONSOLE替换为/SUBSYSTEM:WINDOWS
  2. 告知MSVC编译器使用WinMain作为程序入口,不再寻找main函数
  3. 自动链接GUI程序所需的系统库(包括user32.lib),无需手动指定

验证步骤

  1. 删除旧的构建目录:
    rmdir /s builddir
    
  2. 重新初始化构建环境:
    meson setup builddir
    
  3. 执行编译:
    meson compile -C builddir
    

内容的提问来源于stack exchange,提问作者Sul W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 03:52:40