静态链接 SDL2 程序 (MinGW64)

引用 SDL 静态编译教程 的话:

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用 C语言 写成。本文主要介绍 SDL 库的静态编译方法。SDL 当前是第二版,开源协议改为 Zlib 授权模式,官方文档上描述虽然 SDL 可以编译为静态库,但不会主动介绍静态库的编译方法,也不推荐将 SDL 编译为静态库使用,不过在很多场合下,静态编译去除依赖可以让程序看起来更便捷。

但对于 GNU 家的 MinGW 来说,解决方法远没有那篇文章介绍的那么繁琐,官方也在其发布文件 /bin 中的 sdl-config 中明确指出了静态链接方法。


运行 ${prefix}/bin/sdl-config --static-libs --cflags --libs 可以获得

-L${exec_prefix}/lib -lmingw32 -lSDL2main -lSDL2 -mwindows  -Wl,--dynamicbase -Wl,--nxcompat -Wl,--high-entropy-va -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lsetupapi -lversion -luuid

其中 ${exec_prefix} 替换成你存 SDL 库的地方。(正确安装的话不用加-L也可)
所以只需 g++ main.cpp 加上上面一堆就好了。当然 strip 后才能获得正常的静态链接可执行文件大小(2-3MB)。

posted @   wsm25  阅读(979)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示