使用matebook e go、surface pro x等arm架构的设备编译tauri项目时提示:
fatal error LNK1318: \xb7\xc7\xd2\xe2\xcd\xe2\xb5\xc4 PDB \xb4\xed\xce\xf3: OK (0)\xa1\xb0\xa1\xb1\r\n
这一提示指明了编译源码成功,而链接失败。本人的设备上出现这一错误的原因在于使用的nodejs的架构与rust的工具链不一致。使用npm run tauri info查看输出
> tauri-hello-world@0.0.0 tauri
> tauri info
Environment
› OS: Windows 10.0.22000 X64
› Webview2: 109.0.1518.78
› MSVC:
- Visual Studio Community 2022
› Node.js: 18.14.0
› npm: 9.3.1
› pnpm: Not installed!
› yarn: Not installed!
› rustup: 1.25.2
› rustc: 1.67.1
› cargo: 1.67.1
› Rust toolchain: stable-aarch64-pc-windows-msvc
可以注意到env os的架构和rust toolchain设置的架构不一致。因而解决办法有两种:
1. 使用arm架构的nodejs。官方网站没有提供相关的安装包,本人没有采用这种方法,未来再进行尝试。
2. 切换rust toolchain,使用命令
rustup default stable-x86_64-pc-windows-msvc
将rust toolchain的架构设置为x64,并且在vs installer中安装好msvc c++ x64/x86生成工具等x86/64架构下需要的编译-链接依赖,遂项目可运行。