编译rustdesk,使用flutter、hwcodec硬件编解码、支持Windows 7系统

目录

安装相应的环境

安装visual studio
安装vpkg
安装rust开发环境
安装llvm和clang

编译源码

下载源码
使用Sciter作为UI的(已弃用)
使用flutter作为UI的(主流)

下载flutter sdk
桥接
静默安装
支持Windows 7系统

最近某desk免费的限制越来越多,实在没办法,平时远程控制用的比较多,只能用rustdesk了,rustdesk的安装包默认没有服务器和API服务器的,因此想着自己编译并设置一些参数直接写入程序中。

安装相应的环境

安装visual studio

到网站Visual studio下载安装包
打开后
图片[1] - 编译rustdesk,使用flutter、hwcodec硬件编解码、支持Windows 7系统 - 宋马
切换至单个主件
图片[2] - 编译rustdesk,使用flutter、hwcodec硬件编解码、支持Windows 7系统 - 宋马
安装后即可

安装vpkg

到github下载vpkg下载地址

或者使用git clone

# 克隆vcpkg到E盘
git clone https://github.com/microsoft/vcpkg.git E:vcpkg

# 创建VCPKG_ROOT环境变量
$vcpkgPath = "E:vcpkg"
[Environment]::SetEnvironmentVariable("VCPKG_ROOT", $vcpkgPath, [EnvironmentVariableTarget]::User)

# 将VCPKG_ROOT添加到PATH环境变量
$currentPath = [Environment]::GetEnvironmentVariable("PATH", [EnvironmentVariableTarget]::User)
if ($currentPath -notlike "*$vcpkgPath*") {
            
    [Environment]::SetEnvironmentVariable("PATH", "$currentPath;$vcpkgPath", [EnvironmentVariableTarget]::User)
}

# 刷新当前会话的环境变量
$env:VCPKG_ROOT = $vcpkgPath
$env:PATH = "$env:PATH;$vcpkgPath"

Write-Host "VCPKG_ROOT环境变量已设置为: $vcpkgPath"
Write-Host "并已添加到PATH环境变量中"

设置好后,就可以在任意位置使用vkpg,接下来使用vkpg安装相应的依赖库

vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static ffmpeg:x64-windows-static

安装过程中如果出现连接错误,设置走代理,我使用的是v2ray

git config --global http.proxy http://127.0.0.1:10809
git config --global https.proxy http://127.0.0.1:10809
$env:http_proxy="http://127.0.0.1:10809"
$env:https_proxy="http://127.0.0.1:10809"

安装rust开发环境

到网站rust下载地址下载相应安装包
运行后选1 即可

安装llvm和clang

到该网址llvm下载并安装,同时将llvm添加到环境变量中,安装的时候勾选选项即可

编译源码

下载源码

git下载源码
我的代码中已经自动设置服务器地址为:
172.18.240.10(局域网地址)你们可以自己搜索后替换掉
连接密码修改请搜索:permanent-password

git clone https://github.com/carlpc/rustdesk.git
cd rustdesk
## 拉取子模块代码
git submodule update --init --recursive

使用Sciter作为UI的(已弃用)

下载sciter.dll到工程根目录
windows
Linux
macos
图片[3] - 编译rustdesk,使用flutter、hwcodec硬件编解码、支持Windows 7系统 - 宋马
然后直接运行即可cargo run即可

cargo run

使用flutter作为UI的(主流)

可以使用github actions工作流进行编译,这里使用最原始的编译方式来编译
参考代码目录下的flutter-build.yml文件

下载flutter sdk

下载地址
解压后,将bin目录添加到环境变量

E:fluttersdkflutterin

接下来,设置为中国镜像,并切换至3.24.5

# 设置用户级环境变量
[Environment]::SetEnvironmentVariable("PUB_HOSTED_URL", "https://pub.flutter-io.cn", "User")
[Environment]::SetEnvironmentVariable("FLUTTER_STORAGE_BASE_URL", "https://storage.flutter-io.cn", "User")

在flutter目录下切换至3.24.5版本

git checkout 3.24.5

桥接

切换至rustdesk目录下的flutter生成桥接文件

cd flutter; flutter pub get
##安装桥接工具
cargo install flutter_rust_bridge_codegen --version 1.80.1 --features uuid
##生成桥接文件

.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart

接下来记得开代理,需要到github拉取hwcodec的源码

$env:TEMP="G:	emp"; $env:TMP="G:	emp";$env:CARGO_HOME="G:cargo-cache"
python build.py --flutter --hwcodec --vram

静默安装

rustdesk.exe --silent-install

支持Windows 7系统

由于flutter 3.19以后的版本不再支持Windos 7系统,如果你需要安装在windows 7操作系统上,需要降低flutter 的版本。否则会出现无法安装的问题。
rustdesk无法安装在windows 7系统
本文使用3.19.6版本编译生成安装包。
首先切换到flutter sdk目录下,切换flutter的版本

cd E:fluttersdkflutter
git checkout -f 3.19.6

图片[4] - 编译rustdesk,使用flutter、hwcodec硬件编解码、支持Windows 7系统 - 宋马
接着在rustdesk的flutter目录下生成桥接文件

flutter pub add extended_text:^13.1.0
flutter pub get 
##安装flutter_rust_bridge_codegen工具:
cargo install flutter_rust_bridge_codegen --version 1.80.1 --features uuid --locked
##生成桥接文件
flutter_rust_bridge_codegen --rust-input ../src/flutter_ffi.rs --dart-output ./lib/generated_bridge.dart --c-output ./macos/Runner/bridge_generated.h

图片[5] - 编译rustdesk,使用flutter、hwcodec硬件编解码、支持Windows 7系统 - 宋马
结束后,切换至根目录开始编译

cd ..
$env:TEMP="G:	emp"; $env:TMP="G:	emp";$env:CARGO_HOME="G:cargo-cache"
python build.py --flutter --hwcodec --vram

编译完成后即可安装于Windows 7系统上

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
Hellocuiii的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容