如何在VSCode中打包使用Raylib开发的C++游戏为可运行应用程序
基于Raylib的C++游戏独立打包全流程(VSCode环境)
前置准备
- 确认本地Raylib为静态编译版本:Windows下对应
.lib后缀库文件,macOS/Linux下对应.a后缀库文件,若只有动态库需要重新编译Raylib并勾选静态编译选项 - 所有游戏依赖的图片、音频、字体等资源统一放在项目根目录的
assets文件夹内,代码内资源路径全部改为相对路径
Windows平台打包步骤
- 修改VSCode的编译配置(tasks.json文件),在原有编译参数中加入静态编译标记,参考编译命令如下:
x86_64-w64-mingw32-g++ -static -static-libgcc -static-libstdc++ 你的代码文件.cpp -o 游戏名.exe -lraylib -lopengl32 -lgdi32 -lwinmm-static参数为必填项,会将所有依赖的运行库打包进exe,无需额外附带dll文件 - 执行编译生成exe文件后,将
assets资源文件夹和exe放在同一目录下,整个文件夹即可直接分发运行;如果需要单文件执行,可以用Raylib自带的rres工具将资源打包成二进制嵌入代码,编译后仅生成单个exe文件 - 可使用
upx工具压缩最终exe文件,体积可缩小60%以上不影响运行
macOS平台打包步骤
- 修改编译参数添加静态标记,参考编译命令如下:
clang++ -std=c++17 -framework CoreVideo -framework IOKit -framework Cocoa -framework GLUT -framework OpenGL libraylib.a 你的代码文件.cpp -o 游戏名 - 生成符合macOS使用习惯的app包(可选):
- 新建文件夹命名为
游戏名.app,依次创建子目录Contents/MacOS、Contents/Resources - 编译好的可执行文件放入
Contents/MacOS目录,所有资源文件放入Contents/Resources目录 - 新建
Contents/Info.plist文件填入基础的app配置信息即可
- 新建文件夹命名为
- 执行
otool -L 可执行文件路径验证没有依赖外部Raylib动态库,即完成打包
Linux平台打包步骤
- 优先尝试静态编译,参考编译命令如下:
g++ -static -static-libgcc -static-libstdc++ 你的代码文件.cpp -o 游戏名 -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 - 若静态编译存在依赖缺失问题,可使用AppImage方式打包:将编译好的动态链接版可执行文件、所有依赖库、资源文件放入AppDir目录,用
appimagetool工具打包成单个AppImage文件,即可在所有主流发行版直接运行
内容的提问来源于stack exchange,提问作者Okoma
相关产品推荐
相关产品推荐

