xmake找不到离线安装的msvc
Xmake 版本
v3.0.1+dev.7ab1594d2
操作系统版本和架构
Windows11
描述问题
xmake找不到离线安装的msvc,checking for Microsoft Visual Studio (x64) version ... no
E:\lm\code\InfiniCore>xmake f -c -vD checking for platform ... windows checking for architecture ... x64 checking for Microsoft Visual Studio (x64) version ... no checking for clang ... E:\lm\env\llvm\bin\clang.exe checkinfo: cannot runv(nim.exe --version), No such file or directory checking for nim ... no checkinfo: cannot runv(nim.exe --version), No such file or directory checking for nim ... no checking for git ... E:\lm\env\git\Git\cmd\git.exe checkinfo: cannot runv(gzip.exe --version), No such file or directory checking for gzip ... no checking for 7z ... E:\lm\env\xmake\winenv\bin\7z E:\lm\env\git\Git\cmd\git.exe rev-parse HEAD checking for clang ... E:\lm\env\llvm\bin\clang.exe checking for the c compiler (cc) ... clang.exe checking for clang ... E:\lm\env\llvm\bin\clang.exe checking for the c++ compiler (cxx) ... clang.exe checking for Cuda SDK directory ... no checkinfo: cannot runv(nvfortran.exe --version), No such file or directory checking for nvfortran ... no checking for the fortran compiler (fc: nvfortran) ... no checking for gfortran ... E:\lm\env\minGW\mingw64\bin\gfortran.exe checking for the fortran compiler (fc) ... gfortran.exe checking for ninja ... no checking for ninja ... C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe checking for cmake ... no checking for cmake ... C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe checking for python ... no checking for python3 ... no checking for python ... no checking for python2 ... no checking for python ... no checkinfo: cannot runv(C:\Users\w'x'f\AppData\Local\Microsoft\WindowsApps\python3.exe --version), No such file or directory checkinfo: cannot runv(python3.exe --version), No such file or directory checking for python3 ... no checking for python ... E:\lm\env\conda\python.exe E:\lm\env\conda\python.exe -c "import pip" E:\lm\env\conda\python.exe -c "import setuptools" E:\lm\env\conda\python.exe -c "import wheel" finding libomp from xmake .. checking for xmake::libomp ... no finding libomp from vcpkg .. finding libomp from conan .. finding libomp from system ..
E:\lm\env\llvm\bin\clang.exe -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -o C:\Users\w'x'f\AppData\Local\Temp.xmake\250911_9F3B1E3791094E308B4E27112DD8C260.o C:\Users\w'x'f\AppData\Local\Temp.xmake\250911_775FB00633BC4F66BF87D39CCDE5CF30.c checking for E:\lm\env\llvm\bin\clang.exe ... ok checking for flags (-fdiagnostics-color=always) ... ok clang.exe "-fdiagnostics-color=always" "-Qunused-arguments" "-m64" "--target=x86_64-windows-msvc" checking for flags (-fansi-escape-codes) ... ok clang.exe "-fansi-escape-codes" "-Qunused-arguments" "-m64" "--target=x86_64-windows-msvc" checking for flags (-Wno-gnu-line-marker -Werror) ... ok clang.exe "-Wno-gnu-line-marker" "-Werror" "-Qunused-arguments" "-m64" "--target=x86_64-windows-msvc" checking for clang++ ... E:\lm\env\llvm\bin\clang++.exe checking for the linker (ld) ... clang++.exe E:\lm\env\llvm\bin\clang++.exe -o C:\Users\w'x'f\AppData\Local\Temp.xmake\250911_9F3B1E3791094E308B4E27112DD8C260.b C:\Users\w'x'f\AppData\Local\Temp.xmake\250911_9F3B1E3791094E308B4E27112DD8C260.o -m64 --target=x86_64-windows-msvc -llibomp checking for c links(libomp) checking for c snippet(find_package/libomp) checking for libomp ... system::libomp checking for Cuda SDK directory ... no checkinfo: cannot runv(nvfortran.exe --version), No such file or directory checking for nvfortran ... no checking for the fortran linker (fcld: nvfortran) ... no checking for gfortran ... E:\lm\env\minGW\mingw64\bin\gfortran.exe checking for the fortran linker (fcld) ... gfortran.exe checking for Cuda SDK directory ... no checkinfo: cannot runv(nvcc.exe --version), No such file or directory checking for nvcc ... no checking for the cuda compiler (cu: nvcc) ... no checking for clang ... E:\lm\env\llvm\bin\clang.exe checking for the cuda compiler (cu) ... clang.exe checking for xmake-repo::openmp ... openmp checking for clang++ ... E:\lm\env\llvm\bin\clang++.exe checking for the shared library linker (sh) ... clang++.exe configure { nv-gpu = false moore-gpu = false host = windows network = public iluvatar-gpu = false sugon-dcu = false cudnn = true ndk_stdcxx = true opencl = false arch = x64 theme = default plat = windows clean = true ninetoothed = false cpu = true ascend-npu = false kind = static cambricon-mlu = false proxy_pac = pac.lua ccl = false metax-gpu = false kunlun-xpu = false omp = true builddir = build ccache = true mode = release }
期待的结果
checking for Microsoft Visual Studio (x64) version ... no 期望能检测到msvc,输出版本信息,如2022
工程配置
add_rules("mode.debug", "mode.release") -- Define color codes local GREEN = '\27[0;32m' local YELLOW = '\27[1;33m' local NC = '\27[0m' -- No Color
set_encodings("utf-8")
add_includedirs("include")
if is_mode("debug") then add_defines("DEBUG_MODE") end
if is_plat("windows") then set_runtimes("MD") add_ldflags("/utf-8", {force = true}) add_cxflags("/utf-8", {force = true}) end
-- CPU option("cpu") set_default(true) set_showmenu(true) set_description("Whether to compile implementations for CPU") option_end()
option("omp") set_default(true) set_showmenu(true) set_description("Enable or disable OpenMP support for cpu kernel") option_end()
if has_config("cpu") then includes("xmake/cpu.lua") add_defines("ENABLE_CPU_API") end
if has_config("omp") then add_defines("ENABLE_OMP") end
-- 英伟达 option("nv-gpu") set_default(false) set_showmenu(true) set_description("Whether to compile implementations for Nvidia GPU") option_end()
if has_config("nv-gpu") then add_defines("ENABLE_NVIDIA_API") includes("xmake/nvidia.lua") end
option("cudnn") set_default(true) set_showmenu(true) set_description("Whether to compile cudnn for Nvidia GPU") option_end()
if has_config("cudnn") then add_defines("ENABLE_CUDNN_API") end
-- 寒武纪 option("cambricon-mlu") set_default(false) set_showmenu(true) set_description("Whether to compile implementations for Cambricon MLU") option_end()
if has_config("cambricon-mlu") then add_defines("ENABLE_CAMBRICON_API") includes("xmake/bang.lua") end
-- 华为昇腾 option("ascend-npu") set_default(false) set_showmenu(true) set_description("Whether to compile implementations for Huawei Ascend NPU") option_end()
if has_config("ascend-npu") then add_defines("ENABLE_ASCEND_API") includes("xmake/ascend.lua") end
-- 天数智芯 option("iluvatar-gpu") set_default(false) set_showmenu(true) set_description("Whether to compile implementations for Iluvatar GPU") option_end()
if has_config("iluvatar-gpu") then add_defines("ENABLE_ILUVATAR_API") includes("xmake/iluvatar.lua") end
-- 沐曦 option("metax-gpu") set_default(false) set_showmenu(true) set_description("Whether to compile implementations for MetaX GPU") option_end()
if has_config("metax-gpu") then add_defines("ENABLE_METAX_API") includes("xmake/metax.lua") end
-- 摩尔线程 option("moore-gpu") set_default(false) set_showmenu(true) set_description("Whether to compile implementations for Moore Threads GPU") option_end()
if has_config("moore-gpu") then add_defines("ENABLE_MOORE_API") includes("xmake/moore.lua") end
-- 海光 option("sugon-dcu") set_default(false) set_showmenu(true) set_description("Whether to compile implementations for Sugon DCU") option_end()
if has_config("sugon-dcu") then add_defines("ENABLE_SUGON_CUDA_API") end
-- 昆仑芯 option("kunlun-xpu") set_default(false) set_showmenu(true) set_description("Enable or disable Kunlun XPU kernel") option_end()
if has_config("kunlun-xpu") then add_defines("ENABLE_KUNLUN_API") includes("xmake/kunlun.lua") end
-- 九齿 option("ninetoothed") set_default(false) set_showmenu(true) set_description("Whether to complie NineToothed implementations") option_end()
if has_config("ninetoothed") then add_defines("ENABLE_NINETOOTHED") end
-- OpenCL option("opencl") set_default(false) set_showmenu(true) set_description("Whether to compile implementations for OpenCL backend") option_end()
if has_config("opencl") then add_defines("ENABLE_OPENCL_API") add_defines("INTEL") includes("xmake/opencl.lua") end
-- InfiniCCL option("ccl") set_default(false) set_showmenu(true) set_description("Wether to compile implementations for InfiniCCL") option_end()
if has_config("ccl") then add_defines("ENABLE_CCL") end
target("infini-utils") set_kind("static") on_install(function (target) end) set_languages("cxx17")
set_warnings("all", "error")
if is_plat("windows") then
add_cxflags("/wd4068")
if has_config("omp") then
add_cxflags("/openmp")
end
else
add_cxflags("-fPIC", "-Wno-unknown-pragmas")
if has_config("omp") then
add_cxflags("-fopenmp")
add_ldflags("-fopenmp", {force = true})
end
end
add_files("src/utils/*.cc")
target_end()
target("infinirt") set_kind("shared")
if has_config("cpu") then
add_deps("infinirt-cpu")
end
if has_config("nv-gpu") then
add_deps("infinirt-nvidia")
end
if has_config("cambricon-mlu") then
add_deps("infinirt-cambricon")
end
if has_config("ascend-npu") then
add_deps("infinirt-ascend")
end
if has_config("metax-gpu") then
add_deps("infinirt-metax")
end
if has_config("moore-gpu") then
add_deps("infinirt-moore")
end
if has_config("iluvatar-gpu") then
add_deps("infinirt-iluvatar")
end
if has_config("kunlun-xpu") then
add_deps("infinirt-kunlun")
end
if has_config("opencl") then
add_deps("infinirt-opencl")
end
set_languages("cxx17")
set_installdir(os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini"))
add_files("src/infinirt/*.cc")
add_installfiles("include/infinirt.h", {prefixdir = "include"})
target_end()
target("infiniop") set_kind("shared") add_deps("infinirt")
if has_config("cpu") then
add_deps("infiniop-cpu")
end
if has_config("nv-gpu") then
add_deps("infiniop-nvidia")
end
if has_config("iluvatar-gpu") then
add_deps("infiniop-iluvatar")
end
if has_config("sugon-dcu") then
local builddir = string.format(
"build/%s/%s/%s",
get_config("plat"),
get_config("arch"),
get_config("mode")
)
add_shflags("-s", "-shared", "-fPIC")
add_links("cublas", "cudnn", "cudadevrt", "cudart_static", "rt", "pthread", "dl")
-- Using -linfiniop-nvidia will fail, manually link the target using full path
add_deps("nv-gpu", {inherit = false})
add_links(builddir.."/libinfiniop-nvidia.a")
set_toolchains("sugon-dcu-linker")
end
if has_config("cambricon-mlu") then
add_deps("infiniop-cambricon")
end
if has_config("ascend-npu") then
add_deps("infiniop-ascend")
end
if has_config("metax-gpu") then
add_deps("infiniop-metax")
end
if has_config("moore-gpu") then
add_deps("infiniop-moore")
end
if has_config("kunlun-xpu") then
add_deps("infiniop-kunlun")
end
if has_config("opencl") then
add_deps("infiniop-opencl")
end
set_languages("cxx17")
add_files("src/infiniop/devices/handle.cc")
add_files("src/infiniop/ops/*/operator.cc")
add_files("src/infiniop/*.cc")
set_installdir(os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini"))
add_installfiles("include/infiniop/(**/*.h)", {prefixdir = "include/infiniop"})
add_installfiles("include/infiniop/*.h", {prefixdir = "include/infiniop"})
add_installfiles("include/infiniop.h", {prefixdir = "include"})
add_installfiles("include/infinicore.h", {prefixdir = "include"})
target_end()
target("infiniccl") set_kind("shared") add_deps("infinirt")
if has_config("nv-gpu") then
add_deps("infiniccl-nvidia")
end
if has_config("ascend-npu") then
add_deps("infiniccl-ascend")
end
if has_config("cambricon-mlu") then
add_deps("infiniccl-cambricon")
end
if has_config("metax-gpu") then
add_deps("infiniccl-metax")
end
if has_config("iluvatar-gpu") then
add_deps("infiniccl-iluvatar")
end
if has_config("moore-gpu") then
add_deps("infiniccl-moore")
end
set_languages("cxx17")
add_files("src/infiniccl/*.cc")
add_installfiles("include/infiniccl.h", {prefixdir = "include"})
set_installdir(os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini"))
target_end()
target("all") set_kind("phony") add_deps("infiniop", "infinirt", "infiniccl") after_build(function (target) print(YELLOW .. "[Congratulations!] Now you can install the libraries with "xmake install"" .. NC) end) target_end()
-- Tests includes("xmake/test.lua")
附加信息和错误日志
C:\Users\w'x'f>xmake l detect.sdks.find_vstudio { "2022" = { version = "17.0", vcvarsall_bat = "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat", vcvarsall = { } } }
C:\Users\w'x'f>xmake l winos.version 10.0.22000+194
在xmake中添加了一些测试: 修改了check.lua和find_vstuido.lua 输出: Microsoft Windows [版本 10.0.22000.194] (c) Microsoft Corporation。保留所有权利。
C:\Windows\system32>D:
D:>cd InfiniCore
D:\InfiniCore>xmake g -c configure { theme = default network = public clean = true proxy_pac = pac.lua }
D:\InfiniCore>xmake f -c --toolchain=msvc -vD checking for platform ... windows checking for architecture ... x64 ==== DEBUG: toolchain/msvc main start ==== DEBUG: config.get('cc') => nil DEBUG: config.get('cxx') => nil DEBUG: config.get('mrc') => nil DEBUG: toolchain arch => x64 DEBUG: toolchain:sdkdir() => nil DEBUG: resolved cc => cl cxx => cl mrc => rc DEBUG: falling back to _check_vstudio() ==== DEBUG: Starting Visual Studio detection ==== checking for vswhere.exe ... C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe ==== DEBUG: vswhere tool ==== DEBUG: vswhere: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe ==== DEBUG: Looking for Visual Studio version: 17.0 ==== DEBUG: vswhere result: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools
DEBUG: vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat ==== DEBUG: Running vcvarsall.bat command ==== DEBUG: vcvarsall path: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat DEBUG: vsver: 17.0 DEBUG: arch: amd64_x86 DEBUG: opt.toolset: nil DEBUG: opt.sdkver: nil DEBUG: genvcvars.bat output: No output ==== DEBUG: Failed to run genvcvars.bat ==== ==== DEBUG: Running vcvarsall.bat command ==== DEBUG: vcvarsall path: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat DEBUG: vsver: 17.0 DEBUG: arch: x64 DEBUG: opt.toolset: nil DEBUG: opt.sdkver: nil DEBUG: genvcvars.bat output: No output ==== DEBUG: Failed to run genvcvars.bat ==== ==== DEBUG: Running vcvarsall.bat command ==== DEBUG: vcvarsall path: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat DEBUG: vsver: 17.0 DEBUG: arch: amd64_arm DEBUG: opt.toolset: nil DEBUG: opt.sdkver: nil DEBUG: genvcvars.bat output: No output ==== DEBUG: Failed to run genvcvars.bat ==== ==== DEBUG: Running vcvarsall.bat command ==== DEBUG: vcvarsall path: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat DEBUG: vsver: 17.0 DEBUG: arch: amd64_arm64 DEBUG: opt.toolset: nil DEBUG: opt.sdkver: nil DEBUG: genvcvars.bat output: No output ==== DEBUG: Failed to run genvcvars.bat ==== ==== DEBUG: Looking for Visual Studio version: 16.0 ==== DEBUG: vswhere result: DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2019*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 16.0\VC C:\Program Files\Microsoft Visual Studio\2019*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 16.0\VC D:\Program Files\Microsoft Visual Studio\2019*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 16.0\VC E:\Program Files\Microsoft Visual Studio\2019*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 16.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 15.0 ==== DEBUG: vswhere result: DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2017*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 15.0\VC C:\Program Files\Microsoft Visual Studio\2017*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 15.0\VC D:\Program Files\Microsoft Visual Studio\2017*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 15.0\VC E:\Program Files\Microsoft Visual Studio\2017*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 15.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 14.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2015*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC C:\Program Files\Microsoft Visual Studio\2015*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 14.0\VC D:\Program Files\Microsoft Visual Studio\2015*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 14.0\VC E:\Program Files\Microsoft Visual Studio\2015*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 14.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 12.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2013*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC C:\Program Files\Microsoft Visual Studio\2013*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 12.0\VC D:\Program Files\Microsoft Visual Studio\2013*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 12.0\VC E:\Program Files\Microsoft Visual Studio\2013*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 12.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 11.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2012*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC C:\Program Files\Microsoft Visual Studio\2012*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 11.0\VC D:\Program Files\Microsoft Visual Studio\2012*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 11.0\VC E:\Program Files\Microsoft Visual Studio\2012*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 11.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 10.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2010*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC C:\Program Files\Microsoft Visual Studio\2010*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 10.0\VC D:\Program Files\Microsoft Visual Studio\2010*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 10.0\VC E:\Program Files\Microsoft Visual Studio\2010*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 10.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 9.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2008*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC C:\Program Files\Microsoft Visual Studio\2008*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 9.0\VC D:\Program Files\Microsoft Visual Studio\2008*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 9.0\VC E:\Program Files\Microsoft Visual Studio\2008*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 9.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 8.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2005*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 8.0\VC C:\Program Files\Microsoft Visual Studio\2005*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 8.0\VC D:\Program Files\Microsoft Visual Studio\2005*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 8.0\VC E:\Program Files\Microsoft Visual Studio\2005*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 8.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 7.1 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\2003*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 7.1\VC C:\Program Files\Microsoft Visual Studio\2003*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 7.1\VC D:\Program Files\Microsoft Visual Studio\2003*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 7.1\VC E:\Program Files\Microsoft Visual Studio\2003*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 7.1\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 7.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\7.0*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 7.0\VC C:\Program Files\Microsoft Visual Studio\7.0*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 7.0\VC D:\Program Files\Microsoft Visual Studio\7.0*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 7.0\VC E:\Program Files\Microsoft Visual Studio\7.0*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 7.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 6.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC \Bin \Bin DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\6.0*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 6.0\VC C:\Program Files\Microsoft Visual Studio\6.0*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 6.0\VC C:\Program Files\Microsoft Visual Studio\VC98\Bin C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin D:\Program Files\Microsoft Visual Studio\6.0*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 6.0\VC D:\Program Files\Microsoft Visual Studio\VC98\Bin D:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin E:\Program Files\Microsoft Visual Studio\6.0*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 6.0\VC E:\Program Files\Microsoft Visual Studio\VC98\Bin E:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 5.0 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\5.0*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 5.0\VC C:\Program Files\Microsoft Visual Studio\5.0*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 5.0\VC D:\Program Files\Microsoft Visual Studio\5.0*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 5.0\VC E:\Program Files\Microsoft Visual Studio\5.0*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 5.0\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Looking for Visual Studio version: 4.2 ==== DEBUG: vcvarsall paths searched: \VC \VC7\bin \VC \VC\Auxiliary\Build \VC\Auxiliary\Build ....\VC DEBUG: vcvarsall found: not found DEBUG: Additional vcvarsall paths searched: C:\Program Files (x86)\Microsoft Visual Studio\4.2*\VC\Auxiliary\Build C:\Program Files (x86)\Microsoft Visual Studio 4.2\VC C:\Program Files\Microsoft Visual Studio\4.2*\VC\Auxiliary\Build C:\Program Files\Microsoft Visual Studio 4.2\VC D:\Program Files\Microsoft Visual Studio\4.2*\VC\Auxiliary\Build D:\Program Files\Microsoft Visual Studio 4.2\VC E:\Program Files\Microsoft Visual Studio\4.2*\VC\Auxiliary\Build E:\Program Files\Microsoft Visual Studio 4.2\VC DEBUG: vcvarsall found after additional search: not found DEBUG: VsDevCmd.bat paths searched: \Common7\Tools \Common7\Tools DEBUG: VsDevCmd.bat found: not found ==== DEBUG: Visual Studio detection completed ==== DEBUG: Found Visual Studio versions: 2022 => 17.0 vcvarsall arches: ==== DEBUG: _check_vsenv start ==== DEBUG: vstudio keys: vstudio key => 2022 ==== DEBUG: trying vsver => 2022 DEBUG: vcvarsall arches => DEBUG: vcvars is nil for arch => x64 ==== DEBUG: _check_vsenv end (no usable vs found) ==== checking for Microsoft Visual Studio (x64) version ... no ==== DEBUG: main end, returning sdkdir => nil checking for git ... E:\lm\env\git\Git\cmd\git.exe checkinfo: cannot runv(gzip.exe --version), No such file or directory checking for gzip ... no checking for 7z ... E:\lm\env\xmake\winenv\bin\7z E:\lm\env\git\Git\cmd\git.exe rev-parse HEAD error: @programdir\core\main.lua:329: @programdir\modules\private\action\require\impl\package.lua:548: toolchain("msvc"): not found! stack traceback: [C]: in function 'error' [@programdir\core\base\os.lua:1075]: [@programdir\modules\private\action\require\impl\package.lua:548]: in function '_check_package_toolchains' [@programdir\modules\private\action\require\impl\package.lua:1095]: in function '_load_package' [@programdir\modules\private\action\require\impl\package.lua:1155]: in function '_load_packages' [@programdir\modules\private\action\require\impl\package.lua:1693]: in function 'load_packages' [...modules\private\action\require\impl\install_packages.lua:689]: in function '_install_packages' [...modules\private\action\require\impl\install_packages.lua:852]: [@programdir\modules\private\action\require\install.lua:85]: [@programdir\actions\config\main.lua:395]: [C]: in function 'xpcall' [@programdir\core\base\utils.lua:246]: [@programdir\core\base\task.lua:504]: in function 'run' [@programdir\core\main.lua:327]: in function 'cotask' [@programdir\core\base\scheduler.lua:406]:
stack traceback: [C]: in function 'error' @programdir\core\base\os.lua:1075: in function 'os.raiselevel' (...tail calls...) @programdir\core\main.lua:329: in upvalue 'cotask' @programdir\core\base\scheduler.lua:406: in function <@programdir\core\base\scheduler.lua:399>
D:\InfiniCore>
code 和 logs 就能不能加个 code block 么,乱成这样怎么看。
xmake g -c
先清下全局缓存重新检测下
xmake f -c
还是不行,就自己调下 https://github.com/xmake-io/xmake/blob/dev/xmake/modules/detect/sdks/find_vstudio.lua
xmake g -c
xmake l detect.sdks.find_vstudio
Bot detected the issue body's language is not English, translate it automatically.
Can code and logs be added with a code block? How do you think about it?
xmake g -c
Clear the global cache first and re-detect it
xmake f -c
Still not possible, just adjust it yourself https://github.com/xmake-io/xmake/blob/dev/xmake/modules/detect/sdks/find_vstudio.lua
xmake g -c
xmake l detect.sdks.find_vstudio
非常感谢您的回复! 当前测试: 清空缓存
configure
{
theme = default
proxy_pac = pac.lua
network = public
clean = true
}
重新检测:
xmake f -c
checking for platform ... windows
checking for architecture ... x64
checking for Microsoft Visual Studio (x64) version ... no
检测不到,但是调用detect.sdks.find_vstudio输出应该是找到了?
xmake l detect.sdks.find_vstudio
{
"2022" = {
vcvarsall_bat = "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat",
vcvarsall = { },
version = "17.0"
}
}
另外,您说“自己调下 https://github.com/xmake-io/xmake/blob/dev/xmake/modules/detect/sdks/find_vstudio.lua” 指的是直接在xmake安装目录下,../find_vstudio.lua逐步添加输出测试吗
{ "2022" = { vcvarsall_bat = "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat", vcvarsall = { }, version = "17.0" } }
没,你安装不完整,重装下。
自动探测 build tools 如果不行,应该可以用 --sdk=path/to 指定吧
Hi all, sorry to bump this old issue, I have the exact same problem. (You can reply in Chinese that is completely fine)
My xmake l detect.sdks.find_vstudio outputs the same result as @ma-hang above (my VS is 2026):
{
"2026" = {
vcvarsall = { },
version = "18.0",
vcvarsall_bat = "I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build\vcvarsall.bat"
}
}
Note vcvarsall is empty, meaning find_vstudio.lua somehow failed to get any variables listed in vcvars from find_vstudio.lua.
However, when I manually call vcvarsall.bat in cmd, using the variables listed in vcvars, it does output the correct info:
I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>vcvarsall.bat x64
**********************************************************************
** Visual Studio 2026 Developer Command Prompt v18.3.0-insiders
** Copyright (c) 2025 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VCToolsVersion%
14.50.35717
I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VCToolsInstallDir%
I:\MicrosoftVisualStudio2026\VC\Tools\MSVC\14.50.35717\
I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VisualStudioVersion%
18.0
I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VSCMD_VER%
18.3.0-insiders
I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VCInstallDir%
I:\MicrosoftVisualStudio2026\VC\
I already tried running CMD in administrator mode, no success. I even tried manually constructing a return value for the main function in find_vstudio.lua to force it to return the correct information, but still xmake l detect.sdks.find_vstudio outputs the same result.
- How can I get more information to help diagnose what might have gone wrong? (I'm not directly familiar with how Lua scripts work) I tried adding some
utils.cprint()lines here and there, but not much success. - If I want to manually "force-feed" xmake the MSVC toolchain info, which lua file should I modify?
Thank you so much in advance!
Hi all, sorry to bump this old issue, I have the exact same problem. (You can reply in Chinese that is completely fine)
My
xmake l detect.sdks.find_vstudiooutputs the same result as @ma-hang above (my VS is 2026):{ "2026" = { vcvarsall = { }, version = "18.0", vcvarsall_bat = "I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build\vcvarsall.bat" } } Note
vcvarsallis empty, meaningfind_vstudio.luasomehow failed to get any variables listed invcvarsfromfind_vstudio.lua.However, when I manually call
vcvarsall.batin cmd, using the variables listed invcvars, it does output the correct info:I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>vcvarsall.bat x64 ********************************************************************** ** Visual Studio 2026 Developer Command Prompt v18.3.0-insiders ** Copyright (c) 2025 Microsoft Corporation ********************************************************************** [vcvarsall.bat] Environment initialized for: 'x64' I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VCToolsVersion% 14.50.35717 I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VCToolsInstallDir% I:\MicrosoftVisualStudio2026\VC\Tools\MSVC\14.50.35717\ I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VisualStudioVersion% 18.0 I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VSCMD_VER% 18.3.0-insiders I:\MicrosoftVisualStudio2026\VC\Auxiliary\Build>echo %VCInstallDir% I:\MicrosoftVisualStudio2026\VC\I already tried running CMD in administrator mode, no success. I even tried manually constructing a return value for the
mainfunction infind_vstudio.luato force it to return the correct information, but stillxmake l detect.sdks.find_vstudiooutputs the same result.
- How can I get more information to help diagnose what might have gone wrong? (I'm not directly familiar with how Lua scripts work) I tried adding some
utils.cprint()lines here and there, but not much success.- If I want to manually "force-feed" xmake the MSVC toolchain info, which lua file should I modify?
Thank you so much in advance!
try clean global cache first.
xmake g -c
xmake f -c
or you can add print to debug find_vstudio.lua