Premake 是用 lua 编写的构建系统生成器,通过 premake5.lua 脚本生成 VS、Makefile 等原生项目文件;安装需下载二进制并配置 PATH,脚本定义 workspace、project、Filter 等实现多配置跨平台构建。

Premake 是一个用 Lua 编写的轻量级构建系统生成器,它不直接编译代码,而是根据你写的 Lua 脚本,生成 visual studio、Makefile、xcode、Ninja 等原生项目文件。对 c++ 开发者来说,它比 CMake 更简洁、更易读写,尤其适合中小型项目或想摆脱 xml/复杂语法的团队。
安装 Premake
官方推荐方式是下载预编译二进制:
- 访问 https://premake.github.io/download.html,选择对应系统(windows/macOS/linux)和版本(如 premake5)
- 解压后把
premake5(或premake5.exe)加入系统 PATH - 终端输入
premake5 --version验证是否成功
写第一个 C++ 项目脚本(premake5.lua)
在项目根目录新建 premake5.lua,内容如下:
workspace "Myapp" configurations { "Debug", "Release" } platforms { "x64" } project "MyApp" kind "ConsoleApp" language "C++" cppdialect "C++17" targetdir "bin/%{cfg.buildcfg}" files { "**.h", "**.cpp" } filter "configurations:Debug" defines { "DEBUG" } symbols "On" filter "configurations:Release" defines { "NDEBUG" } optimize "On"
说明:
立即学习“C++免费学习笔记(深入)”;
-
workspace定义整体工作区(VS 解决方案 / Make 的顶层) -
project描述一个可执行或库目标 -
files支持通配符,自动包含源码;也可显式列出{"src/main.cpp", "src/utils.h"} -
filter按配置/平台切换设置,类似条件编译
生成项目并构建
在终端进入项目目录,运行:
-
premake5 vs2022→ 生成 Visual Studio 2022 解决方案(.sln) -
premake5 gmake2→ 生成 gnu Makefile(Linux/macOS 默认) -
premake5 xcode4→ 生成 Xcode 项目 - 生成后直接用对应 ide 打开,或命令行构建:
make config=debug(GNU Make)
常用技巧与避坑提示
刚上手容易卡在几个地方:
- 脚本必须叫
premake5.lua,大小写敏感;Premake 5 不兼容 Premake 4 脚本 - 路径是相对于
premake5.lua所在目录的,files {"src/**.cpp"}表示 src 子目录下所有 .cpp - 添加第三方库?用
includedirs、libdirs、links,例如:
includedirs { "deps/glad/include" }
libdirs { "deps/glad/lib" }
links { "glad" } - 想跨平台定义宏?
filter "system:windows"或filter "system:linux"