1、因為打包turbojpeg庫需要cmake編譯,所以需要安裝:cmake, perl,同時需要安裝ndk
安裝:
1、安裝這些依賴首先安裝scoop ,windows的 npm,相當(dāng) 方便,
第一步:打開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,正常顯示版本號即為成功, 添加環(huán)境變量:C:\Program Files\CMake\bin,正常安裝就會 自己添加
3、安裝 NDK, 這個在android studio 中去安裝
打開Android studio? File-> settings -> android sdk -> sdk tools 里面選擇ndk (Side by side)
如下圖:

安裝完成后,一定要在系統(tǒng)環(huán)境變量中添加環(huán)境變量,如下
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的路徑添加,一般默認(rèn)安裝的路徑就是上面的,只是版本號不一樣
在powershell中設(shè)置變量名:
$env:ANDROID_NDK_HOME =C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\29.0.13599879
這個在下面的命令中會用到,如果不設(shè)也可以,就需要每個用到的地方都輸入后面這一長串路徑
4、安裝llvm,也就是clang
命令: scoop install llvm
如果安裝不了,就直接下載一個安裝包,鏈接地址:
地址1? 地址2
地址2是官方地址,如果下載不了,就用地址1,地址版本舊一點,是17版的,官方是最新的,但是都可以用
安裝好后,添加環(huán)境變量
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、配置環(huán)境?
第一步:在你的項目的src-tauri目錄下面,執(zhí)行
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
添加這些構(gòu)建項,正常是已經(jīng)有了的
第二步:創(chuàng)建cargo配置
在pwoershell中輸入如下命令,注意最后面的"@是結(jié)尾 符,不要丟了
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"
"@
上面的所有 / 杠 替換成 \\,如果已經(jīng)執(zhí)行了上面的命令,可以去:c:/Users/Administartor/.cargo/config.toml進行重新 編輯,
設(shè)置編譯環(huán)境變量
啟用靜態(tài)鏈接
$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
按上述配置后應(yīng)該是沒有問題了
上述配置完成后,可能會遇到 打包Windows應(yīng)用出現(xiàn)問題,如果出現(xiàn)同樣上述Android問題,可以如下配置:
1、打開 visual studio installer,然后點擊修改->component
搜索:MSBuild ,C++ CMake,Windows 10 SDK 或者 Windows 11 SDK, 分別勾選,然后安裝這幾個庫
2、設(shè)置環(huán)境變量
powershell 下執(zhí)行
# 設(shè)置正確的生成器
$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
# 設(shè)置 MSBuild 路徑
$env:MSBUILD_PATH ="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64"
# 添加到系統(tǒng) PATH
$env:PATH ="$env:MSBUILD_PATH;$env:PATH"
# 設(shè)置 VCTargetsPath (解決具體錯誤)
$env:VCTargetsPath ="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170"
3、啟用長路徑支持(系統(tǒng)級修復(fù))
powershell 里執(zhí)行
Set-ItemProperty-Path"HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem"-Name"LongPathsEnabled"-Value 1
清理并重建項目
# 清理緩存
cargo clean
# 重建項目
cargo build