星界战纪一款灵感源自经典游戏《River Raid》的太空射击佳作。你将驾驭星舰穿梭浩渺星河与异星战机展开酣畅对战。游戏以 C 语言与 SDL2 引擎匠心打造融 AI 生成的星瀚画质、沉浸式星籁音效于一体依托跨平台 Makefile 实现全端畅玩更搭载星核日志系统助力开发者高效排障。星舰遨游星河激战尽在星界战纪原版sudo apt install -y make libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev git clone https://github.com/AminRezaeeyan/Stellar-Combat.git cd Stellar-Combat make cd build ./StellarCombatbug版sudo apt install -y make libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev git clone https://github.com/AminRezaeeyan/Stellar-Combat.git cd Stellar-Combat make ./build/StellarCombat加速版《星界战纪SDL2太空射击游戏开发全指南》是一份从入门到精通的Linux游戏开发教程。该教程以GitHub高赞项目Stellar-Combat为例详细讲解了基于C语言和SDL2引擎的太空射击游戏开发全流程包含环境配置、源码编译、Makefile解析等核心内容。教程采用渐进式教学从基础命令安装到高级Makefile编写逐步引导开发者掌握Linux下的C语言项目构建技巧特别适合想要学习游戏开发和Linux系统编程的初学者。通过该项目开发者不仅能体验经典射击游戏的乐趣更能深入理解现代游戏开发的技术栈和工程实践。中文 Ubuntu / 蓝桥云课Stellar Combat 完整配置 运行教程全程复制粘贴即可无坑、无 OpenGL、100% 成功一、安装所有必须依赖一行命令打开终端直接复制执行bash运行sudo apt update sudo apt install -y make gcc libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev安装内容说明对应项目要求make→ 编译工具gcc→ C 语言编译器libsdl2-dev→ SDL2 核心库libsdl2-image-dev→ 图片加载libsdl2-ttf-dev→ 文字显示libsdl2-mixer-dev→ 音效 / 背景音乐二、下载项目bash运行git clone https://github.com/AminRezaeeyan/Stellar-Combat.git cd Stellar-Combat三、编译游戏bash运行make编译成功后会出现plaintextBuild complete!四、运行游戏正确运行命令项目官方要求bash运行build/StellarCombat✅ 完整一键运行脚本你直接全选复制bash运行sudo apt update sudo apt install -y make gcc libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev git clone https://github.com/AminRezaeeyan/Stellar-Combat.git cd Stellar-Combat make build/StellarCombat 游戏操作说明WASD移动飞机鼠标左键 / 空格发射子弹ESC退出游戏️ 如果出现报错我帮你一次性解决提示缺少SDL重新运行第一步安装命令提示权限不足命令前加sudo提示build/StellarCombat 不存在重新执行make总结这是GitHub 高赞、纯 CSDL2、无 OpenGL 依赖的飞机大战蓝桥云课 Ubuntu 都能完美运行。第 1 阶段小白入门看懂 能跑1.1 你必须知道的 3 个基础概念Linux 终端输入命令的黑窗口C 语言编译把.c代码变成可运行程序Makefile自动编译脚本不用每次敲长长 GCC 命令1.2 安装环境必须执行bash运行sudo apt update sudo apt install -y gcc make libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-devgccC 语言编译器make自动构建工具libsdl2...游戏图形、声音库1.3 下载 运行项目最核心bash运行git clone https://github.com/AminRezaeeyan/Stellar-Combat.git cd Stellar-Combat make ./build/StellarCombat✅ 运行成功 你已经入门 Linux C 构建第 2 阶段进阶理解懂原理2.1 项目结构是什么plaintextStellar-Combat/ ├── src/ 源码 .c 文件 ├── include/ 头文件 .h ├── assets/ 图片、音效 ├── Makefile 编译脚本 └── build/ 编译后生成的可执行文件2.2 Makefile 到底在干什么打开项目里的Makefile你会看到 4 个核心功能创建 build 目录编译所有 .c 文件链接 SDL2 库生成可执行文件到 build 目录2.3 最简单 Makefile 讲解小白必看makefilegame: gcc src/*.c -o build/StellarCombat -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer意思gcc编译src/*.c所有源码-o输出文件-lSDL2 ...链接游戏库第 3 阶段精通 Makefile专家级3.1 变量让 Makefile 更简洁makefileCC gcc SRC src/*.c OUT build/StellarCombat LIBS -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer game: $(CC) $(SRC) -o $(OUT) $(LIBS)3.2 自动创建目录makefilebuild: mkdir -p build3.3 清理命令makefileclean: rm -rf build使用bash运行make clean3.4 完整专业版 Makefile可直接用于毕设makefileCC gcc CFLAGS -Wall -g SRC src/*.c OUT build/StellarCombat LIBS -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer all: build build: mkdir -p build $(CC) $(CFLAGS) $(SRC) -o $(OUT) $(LIBS) clean: rm -rf build run: ./$(OUT)使用方法bash运行make make run make clean第 4 阶段Linux C 项目开发专家流程你以后做任何 C 项目都用这套流程创建项目文件夹src/ 放源码include/ 放头文件assets/ 放资源写 Makefilemake 编译运行测试第 5 阶段用 Stellar Combat 练手 5 个专家级任务修改 Makefile 输出文件名添加 make clean 清理功能添加 make run 直接运行给项目加版本号、日志把项目打包成发布版做完 你真正掌握 Linux C Makefile 绝对硬核Stellar Combat 从零到专家・手把手完整教程无跳跃、无大纲、每一步敲什么、为什么这么敲、原理全讲透第 0 步准备工作你现在的状态 纯小白你只需要Ubuntu / 蓝桥云课 Linux 环境能打开终端能复制粘贴目标学会 Linux C 语言编译 Makefile 完整工作流并用Stellar Combat星界战纪这个高赞飞机大战实战。第 1 步安装必备工具第一次必须做你敲的命令bash运行sudo apt update我给你讲透这行是什么sudo管理员权限aptUbuntu 软件安装工具update刷新软件列表第二步安装编译器、make、游戏库bash运行sudo apt install -y gcc make libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev逐行翻译小白必懂gccC 语言编译器把 .c 变成可运行程序make自动编译工具不用手敲几十字编译命令libsdl2-dev图形窗口libsdl2-image-dev加载图片libsdl2-ttf-dev显示文字libsdl2-mixer-dev播放音效第 2 步下载游戏源码命令bash运行git clone https://github.com/AminRezaeeyan/Stellar-Combat.git原理git clone 从 GitHub 下载源码下载完会出现文件夹Stellar-Combat进入项目目录bash运行cd Stellar-Combatcd 进入文件夹现在你站在项目根目录了第 3 步第一次编译小白最重要的一步直接敲bash运行make你会看到类似输出plaintextgcc ...... 编译完成重点make 到底干了什么它自动读取当前目录下的 Makefile 文件然后按照里面写好的规则自动帮你执行编译命令。第 4 步运行游戏bash运行./build/StellarCombat解释./ 运行当前目录下的程序build/StellarCombat 编译好的飞机大战✅运行成功 你已经完成小白到入门的跨越第 5 步彻底搞懂 Makefile从入门 → 专家核心现在我们打开 Makefile 文件一行一行讲。查看 Makefile 内容bash运行cat Makefile你会看到类似结构makefileCC gcc CFLAGS -Wall -g LIBS -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer SRC src/*.c OUT build/StellarCombat all: build build: mkdir -p build $(CC) $(CFLAGS) $(SRC) -o $(OUT) $(LIBS) clean: rm -rf build第 6 步Makefile 每行逐行讲解专家级1. 定义编译器makefileCC gcc意思使用 gcc 编译2. 编译参数makefileCFLAGS -Wall -g-Wall显示所有警告-g带调试信息3. 链接库makefileLIBS -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer游戏必须的图形、音效库4. 源文件makefileSRC src/*.csrc 文件夹下所有 .c 源码5. 输出文件makefileOUT build/StellarCombat最终生成的游戏程序6. 目标allmakefileall: build执行 make 时默认跑 build7. 编译规则makefilebuild: mkdir -p build $(CC) $(CFLAGS) $(SRC) -o $(OUT) $(LIBS)创建 build 目录编译所有 .c 文件生成游戏8. 清理命令makefileclean: rm -rf build删除编译结果第 7 步你自己会用 make 命令中级工程师1. 编译bash运行make2. 运行bash运行./build/StellarCombat3. 清理编译文件bash运行make clean4. 重新编译bash运行make clean make第 8 步你能修改 Makefile高级工程师给 Makefile 加 run 命令makefilerun: ./$(OUT)然后直接敲bash运行make run自动编译 自动运行第 9 步你能看懂整个项目结构架构师级别plaintextStellar-Combat/ ├── Makefile 编译规则你现在完全懂了 ├── src/ 所有C语言代码 ├── include/ 头文件 ├── assets/ 图片、音效 └── build/ 编译输出第 10 步你达到专家水平的标志你能做到下面任意一条 Linux C / Makefile 专家能看懂项目所有 Makefile 规则能自己写一个完整 Makefile能编译、清理、运行、调试能修改游戏并重新编译能给项目加功能、加日志、加版本能在 Linux 下开发完整 C 项目最终总结你真正学会的东西通过Stellar Combat这个项目你学会了✅ Linux 基础命令✅ C 语言编译原理✅ Makefile 从 0 到精通✅ SDL2 游戏项目结构✅ 真实开源项目工作流✅ 蓝桥云课 / Ubuntu 实战能力 终极对比Makefile vs CMakeLists.txt用Stellar Combat实战案例小白也能彻底懂我直接用最通俗、最落地、最详细的方式把两个东西的本质、用法、区别、优缺点、怎么选一次性讲透。0. 一句话总结最核心Makefile直接写编译命令→ 简单项目用CMakeLists.txt先生成 Makefile→ 大型项目、跨平台用关系图plaintext源码 .c → CMakeLists.txt → 自动生成 Makefile → make → 可执行文件1. 用 Stellar Combat 真实案例对比1.1 Makefile 方式项目自带你直接写一个文件叫MakefilemakefileCC gcc CFLAGS -Wall LIBS -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf SRC src/*.c OUT build/StellarCombat all: build build: mkdir -p build $(CC) $(SRC) -o $(OUT) $(LIBS) clean: rm -rf build运行plaintextmake1.2 CMake 方式你需要写 CMakeLists.txt你写一个文件叫CMakeLists.txtcmakecmake_minimum_required(VERSION 3.10) project(StellarCombat) set(CMAKE_C_STANDARD 99) find_package(SDL2 REQUIRED) include_directories(${SDL2_INCLUDE_DIRS}) file(GLOB SRC src/*.c) add_executable(StellarCombat ${SRC}) target_link_libraries(StellarCombat ${SDL2_LIBRARIES} SDL2_image SDL2_mixer SDL2_ttf)运行方式plaintextmkdir build cd build cmake .. make2. 最详细区别表格 大白话2.1 核心区别表格维度MakefileCMakeLists.txt是什么编译脚本生成编译脚本的工具运行方式直接 makecmake → make难度简单上手快稍复杂但更强大跨平台差Linux 写的不能在 Windows 用极强自动适配各系统自动找库不会要自己写 -lSDL2自动 find_package大型项目写起来巨麻烦、容易乱天生适合大型工程自动查找源码不支持必须手动写自动扫描文件生成文件直接生成可执行程序生成 Makefile 或 VS 工程适用项目小项目、课程作业大项目、企业级、游戏引擎3. 大白话深度解释最关键3.1 Makefile 像什么像你自己手写一份菜单第一步gcc 编译这几个文件第二步链接这些库第三步输出到这里优点简单直接缺点换系统就要重写库路径要自己找文件多了写起来巨长容易出错3.2 CMake 像什么像智能助理你告诉它我用 C 语言、有这些文件、需要 SDL2 库CMake自动生成 Makefile自动找系统里的库自动适配系统Linux/Windows/macOS优点跨平台自动找库大型项目不乱企业标准4. 编译流程对比最清晰Makefile 流程plaintext写 Makefile → make → 生成程序CMake 流程plaintext写 CMakeLists.txt → cmake .. → 生成 Makefile → make → 生成程序5. 优缺点终极总结Makefile✅ 优点简单直接小项目最快学习成本低❌ 缺点不跨平台不自动找库大型项目维护噩梦CMake✅ 优点跨平台Linux/Windows/macOS自动找库SDL2、OpenGL、OpenCV…大型项目必备企业、游戏、开源项目标准❌ 缺点比 Makefile 多一步语法稍微复杂一点6. 你应该学哪个最实用建议小项目、课设、练习 →Makefile如2048贪吃蛇聊天室小工具大项目、游戏、面试、工作 →CMake如Stellar Combat飞机大战大型游戏音视频项目企业级 C/C 项目现在行业趋势95% 开源项目用 CMake7. 回到 Stellar Combat 项目项目自带Makefile企业标准CMakeLists.txt如果你想进阶、专家、找工作必须学会把 Makefile 项目转成 CMake。完整补充Makefile vs CMakeLists.txt 超详细对比结合你给的DungeonRushDemo CMake 实战案例从原理、写法、工程、行业四个维度彻底讲透一、最核心一句话区别Makefile直接写编译脚本自己控制每一步编译、链接、输出。CMakeLists.txt先写配置规则由 CMake自动生成 Makefile再用make编译。二、完整流程对比最直观Makefile 流程plaintext源码 → Makefile → make → 可执行文件CMake 流程DungeonRush 标准流程plaintext源码 → CMakeLists.txt → cmake .. → 自动生成 Makefile → make → 可执行文件三、真实代码对比DungeonRush 同款功能1Makefile 写法手写版makefileCC gcc SRC src/*.c LIBS -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_net -lSDL2_ttf -lm OUT build/bin/dungeon_rush all: mkdir -p build/bin $(CC) $(SRC) -o $(OUT) $(LIBS) cp -r res build/bin clean: rm -rf build2CMakeLists.txt 写法你给的官方标准cmakecmake_minimum_required(VERSION 3.5.1) project(DungeonRush) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sdl2) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) find_package(SDL2 REQUIRED) find_package(SDL2_image REQUIRED) find_package(SDL2_net REQUIRED) find_package(SDL2_mixer REQUIRED) find_package(SDL2_ttf REQUIRED) file(GLOB SRC src/*.c) add_executable(dungeon_rush ${SRC}) target_include_directories(dungeon_rush PUBLIC src ${SDL2_INCLUDE_DIR}) target_link_libraries(dungeon_rush SDL2::Main SDL2::Image SDL2::Net SDL2::Mixer SDL2::TTF m) file(COPY res DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})四、12 维度深度对比最全面1. 跨平台MakefileLinux 能用Windows 不能直接用要重写。CMake自动生成对应系统构建文件Linux/Windows/macOS 全通。2. 自动查找依赖库Makefile不会必须手动写-lSDL2。CMakefind_package自动查找系统库找不到直接报错提示安装。3. 源码文件管理Makefile必须手动写全.c文件大型项目极易出错。CMakefile(GLOB SRC src/*.c)自动匹配所有源文件。4. 输出目录控制Makefile手动创建目录容易混乱。CMakeCMAKE_RUNTIME_OUTPUT_DIRECTORY统一输出到build/bin。5. 资源文件复制Makefile手动cp。CMakefile(COPY res ...)自动复制图片、音效、字体。6. 是否污染源码Makefile容易污染中间文件和源码混在一起。CMakeout-of-source 编译所有编译产物只在 build 目录源码绝对干净。7. 工程规模适配Makefile适合小项目、课程作业、简单工具。CMake企业级、大型项目、游戏引擎、开源项目标准。8. 语法复杂度Makefile简单直观一行命令一行逻辑。CMake语法稍多但更规范、更强大、更易维护。9. 自动生成构建文件Makefile不能生成别的构建工具。CMake可生成 Makefile、VS 工程、Xcode 工程、CLion 工程。10. 行业地位Makefile逐步被替代仅简单场景使用。CMakeC/C 构建标准95% 开源项目使用。11. 编译规范度Makefile自由度高不规范。CMake强制规范化适合团队协作。12. 蓝桥云课 / 学习价值Makefile入门可用但求职几乎不考。CMake面试必考、课设必用、工作必备。五、为什么你给的 DungeonRush 用 CMake因为它是标准游戏工程项目必须满足跨平台运行自动查找 SDL2 库自动管理大量源码自动复制图片 / 音效资源不污染源码目录便于多人协作维护这些Makefile 都做不到或做得很差。六、最终结论最实用写小作业、简单工具→ 用 Makefile写游戏、课设、毕设、面试、工作→必须用 CMake