什么是 PREMAKE 错误:错误:[字符串"src/base/api.lua"]:592:错误的参数 #2 到"延迟连接"(字符串预期,得到表)?



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

此错误:[string"src/base/api.loa"]: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}")

相关内容

最新更新