google/filament

backend.lib(BackendUtils.obj) : error LNK2019

flymehope opened this issue · 1 comments

I am using filament-v1.62.0-windows. When building xmake, it prompts a lib problem. Below is my xmake.lua file. Please help me check where the error is.

--error
error: backend.lib(BackendUtils.obj) : error LNK2019: 无法解析的外部符号 __std_search_1,函数 "char const * __cdecl std::_Search_vectorized<char const ,char const >(char const * const,char const * const,char const * const,unsigned __int64)" (??$_Search_vectorized@$$CBD$$CBD@std@@YAPEBDQEBD00_K@Z) 中引用了该符号
backend.lib(VulkanPlatform.obj) : error LNK2001: 无法解析的外部符号 __std_search_1
backend.lib(ShaderCompilerService.obj) : error LNK2001: 无法解析的外部符号 __std_search_1
backend.lib(ShaderCompilerService.obj) : error LNK2019: 无法解析的外部符号 __std_find_end_1,函数 "char const * __cdecl std::_Find_end_vectorized<char const ,char const >(char const * const,char const * const,char const * const,unsigned __int64)" (??$_Find_end_vectorized@$$CBD$$CBD@std@@YAPEBDQEBD00_K@Z) 中引用了该符号
build\windows\x64\release\test.exe : fatal error LNK1120: 2 个无法解析的外部命令

--xmake.lua
set_project("filament_test")
set_version("1.0.0")
set_languages("c++20")
add_rules("mode.debug", "mode.release")
set_runtimes("MT")

--add_requires("glfw", "glad", "filament", {configs = {runtimes = "MT"}})
add_requires("glfw", "glad", {configs = {runtimes = "MT"}})

target("test")
add_packages("glfw", "glad", {public = true})
set_runtimes("MT")

set_kind("binary")

add_files("src/main.cpp")

add_includedirs("filament/include", {public = true})
add_linkdirs("filament/lib/x86_64/mt") 
add_links(
    "abseil",
    "filament",
    "backend",
    "bluegl",
    "bluevk",
    "filabridge",
    "filaflat",
    "utils",
    "geometry",
    "smol-v",
    "ibl",
    "vkshaders",
    "abseil"
)
add_syslinks("gdi32", "user32", "opengl32")
after_build(function (target)
    local targetdir = target:targetdir()
    os.cp("filament/bin/SPIRV-Tools-shared.dll", target:targetdir())
end)

The problem was solved, I reinstalled my vs2022.