c++ Premake怎么用 c++ Lua构建系统入门【工具】

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"

说明:

  • workspace 定义整体工作区(VS 解决方案 / Make 的顶层)
  • project 描述一个可执行或库目标
  • files 支持通配符,自动包含源码;也可显式列出 {"src/main.cpp", "src/utils.h"}
  • filter 按配置/平台切换设置,类似条件编译

生成项目并构建

在终端进入项目目录,运行:

  • premake5 vs2025 → 生成 Visual Studio 2025 解决方案(.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
  • 添加第三方库?用 includedirslibdirslinks,例如:
    includedirs { "deps/glad/include" }
    libdirs { "deps/glad/lib" }
    links { "glad" }
  • 想跨平台定义宏?filter "system:windows"filter "system:linux"