Meson构建GuiTutorial失败:VS2019下WinMain链接错误
解决SDL程序链接时LNK2019找不到WinMain的问题
错误原因
链接命令中指定了/SUBSYSTEM:WINDOWS,MSVC编译器会期望程序入口为WinMain,但SDL程序默认使用标准main函数作为入口。静态链接SDL2时,若未正确处理入口函数映射,就会触发该错误。
解决方案
方案1:修改源码显式跳过SDL的入口处理
在你的SDL源码文件(如sdlprog.c)最顶部添加以下定义,告诉SDL不要自动替换入口函数:
#define SDL_MAIN_HANDLED #include <SDL2/SDL.h>
方案2:在Meson构建文件中链接SDL2main组件
编辑项目根目录的meson.build,确保同时链接SDL2的main依赖组件:
# 查找SDL2依赖 sdl_dep = dependency('SDL2') # 显式查找SDL2main依赖 sdl_main_dep = dependency('SDL2_main') # 编译可执行文件时同时传入两个依赖 executable( 'sdlprog', 'sdlprog.c', dependencies : [sdl_dep, sdl_main_dep] )
修改后,重新执行构建命令:
meson compile -C builddir
内容的提问来源于stack exchange,提问作者user2960174
相关产品推荐
相关产品推荐

