windows使用MSVC编译mlc-llm

0

已经安装MSVCrust环境了,还有下面这些问题:

字符问题

[build] D:\gitee\template\llm\mlc-llm\mlc-llm\3rdparty\xgrammar\cpp\tokenizer.cc(140,60): error C2001: 常量中有换行符 [D:\gitee\template\llm\mlc-llm\build\mlc-llm\mlc_llm_objs.vcxproj]
[build] D:\gitee\template\llm\mlc-llm\mlc-llm\3rdparty\xgrammar\cpp\tokenizer.cc(141,7): error C2143: 语法错误: 缺少“;”(在“return”的前面) [D:\gitee\template\llm\mlc-llm\build\mlc-llm\mlc_llm_objs.vcxproj]
[build] D:\gitee\template\llm\mlc-llm\mlc-llm\3rdparty\xgrammar\cpp\tokenizer.cc(141,18): error C2143: 语法错误: 缺少“)”(在“;”的前面) [D:\gitee\template\llm\mlc-llm\build\mlc-llm\mlc_llm_objs.vcxproj]

直接添加下面配置:

add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")

链接问题

[build] D:\gitee\template\llm\mlc-llm\mlc-llm\3rdparty\tvm\3rdparty\tvm-ffi\include\tvm\ffi\object.h(328,5): error C3861: “_InterlockedIncrement64”: 找不到标识符 [D:\gitee\template\llm\mlc-llm\build\mlc-llm\tvm\3rdparty\tvm-ffi\tvm_ffi_objs.vcxproj]
[build]   (编译源文件“../../../../../mlc-llm/3rdparty/tvm/3rdparty/tvm-ffi/src/ffi/error.cc”)
[build]   

这个问题比较奇葩,找了很多解决办法都没效果,最后只需要修改成amd64编译器即可,之前用的amd64_x84的编译器: