lua - 什么是 PREMAKE 错误 : Error: [string "src/base/api.lua"]:592: bad argument #2 to 'deferredjoin' (string expected, 获取表)?

标签 lua premake

所以,我已经开始了这个新项目并正在编写我的预制脚本,但生成它失败并生成

此错误:[string "src/base/api.lua"]:592: 'deferredjoin' 的参数#2 错误(预期字符串,获取表格)

通常,当只是拼写错误时,错误消息会包含脚本中的行号。我看了

预制源文件中存在错误,但无法解决。

这是脚本:

workspace "DX12"
    architecture "x86_64"
    startproject "Demo"

    configurations
    {
        "Debug",
        "Release"
    }

    flags
    {
        "MultiProcessorCompile"
    }

outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"

project "Demo"
    location "Demo"
    kind "WindowedApp"
    language "C++"
    cppdialect "C++17"
    staticruntime "on"

    targetdir {"bin/" .. outputdir .. "/%{prj.name}"}
    objdir    {"bin-int/" .. outputdir .. "/%{prj.name}"}

    files
    {
        "%{prj.name}/src/**.h",
        "%{prj.name}/src/**.cpp"
    }

    includedirs
    {
        "%{prj.name}/src"
    }

    

    links
    {
        "d3d12.lib",
        "dxgi.lib",
        "d3dcompiler.lib"
    }

    filter "system:windows"
        systemversion "latest"

    filter "configurations:Debug"
        defines "DEBUG"
        runtime "Debug"
        symbols "on"

    filter "configurations:Release"
        defines "RELEASE"
        runtime "Release"
        optimize "on"

此脚本实际上有什么问题以及导致生成此错误的原因是什么?

最佳答案

两者targetdirobjdir期望指示路径的单个参数。 Premake 通常将路径作为字符串处理,以便最终用户可以使用语法糖并省略括号。他们通常用这种简化的语法来呈现示例,这有时会导致误解。

开关:

    targetdir {"bin/" .. outputdir .. "/%{prj.name}"}
    objdir    {"bin-int/" .. outputdir .. "/%{prj.name}"}

至:

    targetdir ("bin/" .. outputdir .. "/%{prj.name}")
    objdir    ("bin-int/" .. outputdir .. "/%{prj.name}")

关于lua - 什么是 PREMAKE 错误 : Error: [string "src/base/api.lua"]:592: bad argument #2 to 'deferredjoin' (string expected, 获取表)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63078571/

相关文章:

lua - 按二级索引从 Tarantool 中选择,并按另一个字段和限制/偏移量排序

c - 如何设计更正的lua程序?

lua - lua表中最大条目数

graphics - 在 Love2D 中剪切多边形以仅在圆内绘制

hlsl - 预制5 : How to build HLSL shaders?

resources - 在 premake 中处理非源代码文件

c# - Premake 无法为 C# 库创建 Makefile

c++ - 创建一个调用其他 Lua 函数的 C++ 函数

c++ - 预制链接链接到 SharedLib 不起作用

xcode - 从 <math.h> 链接函数时,OSX/Darwin 无法解析符号