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

24次阅读

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

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

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
  • 添加第三方库?用 includedirslibdirslinks,例如:
    includedirs { "deps/glad/include" }
    libdirs { "deps/glad/lib" }
    links { "glad" }
  • 想跨平台定义宏?filter "system:windows"filter "system:linux"

text=ZqhQzanResources