所以,我已经开始了这个新项目并正在编写我的预制脚本,但生成它失败并生成
此错误:[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"
此脚本实际上有什么问题以及导致生成此错误的原因是什么?
最佳答案
两者targetdir
和 objdir
期望指示路径的单个参数。 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/