windows使用MSVC编译mlc-llm
0
已经安装MSVC和rust环境了,还有下面这些问题:
字符问题
[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的编译器: