1、因为打包turbojpeg库需要cmake编译,所以需要安装:cmake, perl,同时需要安装ndk
安装:
1、安装这些依赖首先安装scoop ,windows的 npm,相当 方便,
第一步:打开powershell,
第二步:输入这个命令: iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
第三步:等待安装后,scoop --version,如果正常显示版本号,则表示安装成功
以上安装要注意:如果使用官方命令: irm get.scoop.sh|iex
会提示不能使用Administrator运行的powershell , 原始报错如下:
Running the installer as administrator is disabled by default, see https://github.com/ScoopInstaller/Install#for-admin for details.
所以要使用上面的命令方式
2、安装cmake, 同样是在powershell中运行,不要在cmd中去运行
命令: scoop install cmake
安装成功后:cmake --version,正常显示版本号即为成功, 添加环境变量:C:\Program Files\CMake\bin,正常安装就会 自己添加
3、安装 NDK, 这个在android studio 中去安装
打开Android studio File-> settings -> android sdk -> sdk tools 里面选择ndk (Side by side)
如下图:

安装完成后,一定要在系统环境变量中添加环境变量,如下
C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\29.0.13599879\toolchains\llvm\prebuilt\windows-x86_64\bin
C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\29.0.13599879
上面两个都要添加,最终以自己的NDK的路径添加,一般默认安装的路径就是上面的,只是版本号不一样
在powershell中设置变量名:
$env:ANDROID_NDK_HOME =C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\29.0.13599879
这个在下面的命令中会用到,如果不设也可以,就需要每个用到的地方都输入后面这一长串路径
4、安装llvm,也就是clang
命令: scoop install llvm
如果安装不了,就直接下载一个安装包,链接地址:
地址1 地址2
地址2是官方地址,如果下载不了,就用地址1,地址版本旧一点,是17版的,官方是最新的,但是都可以用
安装好后,添加环境变量
C:\Program Files\LLVM\bin
5、安装ninja
scoop install ninja
ninja --version 正常显示即可
6、安装 pearl
pwershell输入命令
$env:TURBOJPEG_SYS_STATIC ="1"
scoop install make perl
7、配置环境
第一步:在你的项目的src-tauri目录下面,执行
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
添加这些构建项,正常是已经有了的
第二步:创建cargo配置
在pwoershell中输入如下命令,注意最后面的"@是结尾 符,不要丢了
New-Item-Path$env:USERPROFILE\.cargo\config.toml-Force-Value @"
[target.aarch64-linux-android]
linker = "$env:ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android24-clang.cmd"
[target.armv7-linux-androideabi]
linker = "$env:ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin/armv7a-linux-androideabi24-clang.cmd"
[target.i686-linux-android]
linker = "$env:ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin/i686-linux-android24-clang.cmd"
[target.x86_64-linux-android]
linker = "$env:ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin/x86_64-linux-android24-clang.cmd"
[env]
ANDROID_NDK = "C:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk\\ndk\\29.0.13599879"
CMAKE_TOOLCHAIN_FILE = "C:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk\\ndk\\29.0.13599879\\build\\cmake\\android.toolchain.cmake"
"@
上面的所有 / 杠 替换成 \\,如果已经执行了上面的命令,可以去:c:/Users/Administartor/.cargo/config.toml进行重新 编辑,
设置编译环境变量
启用静态链接
$env:TURBOJPEG_SYS_STATIC ="1"#
指定 CMake 生成器为 Ninja
$env:CMAKE_GENERATOR ="Ninja"
# 指定 Android 平台
$env:ANDROID_PLATFORM ="android-24"
$env:ANDROID_ABI ="arm64-v8a"
# 验证 NDK 配置
cmake -DANDROID_ABI=$env:ANDROID_ABI -DANDROID_PLATFORM=$env:ANDROID_PLATFORM -DCMAKE_TOOLCHAIN_FILE=$env:CMAKE_TOOLCHAIN_FILE --version
按上述配置后应该是没有问题了
上述配置完成后,可能会遇到 打包Windows应用出现问题,如果出现同样上述Android问题,可以如下配置:
1、打开 visual studio installer,然后点击修改->component
搜索:MSBuild ,C++ CMake,Windows 10 SDK 或者 Windows 11 SDK, 分别勾选,然后安装这几个库
2、设置环境变量
powershell 下执行
# 设置正确的生成器
$env:CMAKE_GENERATOR ="Visual Studio 17 2022"
# 添加 MSBuild 到 PATH
$env:PATH ="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64;"+$env:PATH
# 设置 MSBuild 路径
$env:MSBUILD_PATH ="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64"
# 添加到系统 PATH
$env:PATH ="$env:MSBUILD_PATH;$env:PATH"
# 设置 VCTargetsPath (解决具体错误)
$env:VCTargetsPath ="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170"
3、启用长路径支持(系统级修复)
powershell 里执行
Set-ItemProperty-Path"HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem"-Name"LongPathsEnabled"-Value 1
清理并重建项目
# 清理缓存
cargo clean
# 重建项目
cargo build