foo") target("demo") set_kind("binary") add_files("src/main.c") add_packages("foo") 新增 clang-cl 工具链 尽管之前的版本,我们也支持切换到 clang-cl 编译器,但是切换比较繁琐,得挨个设置。 $ xmake f --cxx=clang-cl --cc=clang-cl -c $ xmake 而且还得将 clang-cl.exe 所在目录加入 %PATH% 才行。 既然现在 vs 都自带了 clang-cl 工具链,那么 Xmake 完全可以自动检测到并使用它。 因此,在新版本中,我们新增了 clang-cl 工具链,仅仅只需要 xmake f --toolchain=clang-cl 就可以快速切换到 clang-cl 工具链,而无需任何 PATH 设置。
Visual Studio Installer ------> 单个组件 ------> LLVM (clang-cl) + Clang ------> 安装 Visual Studio ------> 项目属性 ------> 常规 ------> 平台工具集 (LLVM (clang-cl)) // 虚拟栈 PVOID vtStack = malloc(0x10000); // 虚拟栈顶 DWORD64
Windows 平台变更 从 Node.js v24 开始,移除了对 MSVC 的支持,现在需要使用 ClangCL 在 Windows 上编译 Node.js: # 使用 ClangCL 编译 set CC=clang-cl set CXX=clang-cl vcbuild.bat 这一变更可能会影响在 Windows 上进行 Node.js 原生模块开发的开发者,需要相应地调整构建工具链。
Windows 机器,可以从Visual Studio Installer>Individual Components安装: C++ Clang Compiler for WindowsandC++ Clang-cl
可执行文件时出现的链接错误(问题#2594)(@halx99 在PR #2595 中提交)功能改进由 @halx99 在 PR #2595 中实现:使MSVC延迟加载mfmedia dlls的功能也支持clang-cl
CMakeLists.txt +++ b/CMakeLists.txt @@ -117,7 +117,7 @@ endif() if(CMAKE_COMPILER_IS_GNUCXX OR CLANG) # Note clang-cl "-Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla") if(MSVC) # clang-cl
SDK 支持 #4889: 添加 signal 模块 去注册信号处理 #4925: 添加 native 模块支持 #4938: 增加对 cppfront/h2 的支持 改进 改进包管理,支持切换 clang-cl
然后配置属性-常规-平台工具集,点击平台工具集右边的Visual Studio 2022改为LLVM(clang-cl),之后点击应用,确定就可以了这时候再编译变量数组就不会出现问题了 接下来我们用代码实践
L"DllName:\t%s\n", DllName); return 0;} 注意,这里由于msvc是不支持64位的C++内嵌汇编的,所以想运行如上代码需要做以下设置: 如果没有llvm(clang-cl
HAS_EXCEPTIONS=1", {force = true}) elseif(target:has_tool("cxx", "clang") or target:has_tool("cxx", "clang-cl
HANDLE)-1, &allocation, 0, &size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); 如果使用vs,那么需要把平台工具集改成LLVM (clang-cl
#24148: 维护:为进一步开发准备 1.25.x #24174: 增强:改善 clang-cl 兼容性 #24179: 维护:升级各种构建依赖项。 #24148: MAINT: 为 1.25.x 做进一步开发准备 #24174: ENH: 改进 clang-cl 兼容性 #24179: MAINT: 升级各种构建依赖项。