|
@@ -68,17 +68,27 @@ docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user
|
|
|
|
|
|
# 运行
|
|
# 运行
|
|
./target/debug/rustdesk
|
|
./target/debug/rustdesk
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+git clone https://github.com/rustdesk/rustdesk # 克隆Github存储库
|
|
|
|
+cd rustdesk # 进入文件夹
|
|
|
|
+docker build -t "rustdesk-builder" . # 构建容器
|
|
|
|
+
|
|
|
|
+docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
|
|
|
|
+
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
-## 构建 Ubuntu 本地开发环境
|
|
|
|
|
|
+## 构建 Ubuntu22 本地开发环境
|
|
|
|
|
|
跨平台项目一般都在Linux上开发,可以依照 dockerfile 中参考,安装并构建:
|
|
跨平台项目一般都在Linux上开发,可以依照 dockerfile 中参考,安装并构建:
|
|
-
|
|
|
|
|
|
+主要依赖git,rust,flutter,ndk,sciter,vcpkg(音视频)
|
|
```
|
|
```
|
|
sudo apt install ca-certificates -y
|
|
sudo apt install ca-certificates -y
|
|
sudo apt update -y
|
|
sudo apt update -y
|
|
-sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang cmake libclang-dev ninja-build llvm-dev libclang-10-dev llvm-10-dev pkg-config
|
|
|
|
|
|
+sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang cmake libclang-dev ninja-build llvm-dev libclang-10-dev llvm-10-dev pkg-config libxcb-randr0-dev libxdo-dev \
|
|
|
|
+ libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev make \
|
|
|
|
+ libgstreamer1.0-dev libgstreamer-plu
|
|
|
|
|
|
git clone https://github.com/microsoft/vcpkg
|
|
git clone https://github.com/microsoft/vcpkg
|
|
cd vcpkg
|
|
cd vcpkg
|
|
@@ -90,6 +100,13 @@ vcpkg/vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64
|
|
|
|
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
source $HOME/.cargo/env
|
|
source $HOME/.cargo/env
|
|
|
|
+rustup --version
|
|
|
|
+
|
|
|
|
+# rust自动生成dart代码
|
|
|
|
+cargo install flutter_rust_bridge_codegen --version 1.75.3 --features uuid
|
|
|
|
+#flutter_rust_bridge_codegen create demo #创建项目
|
|
|
|
+
|
|
|
|
+# ~\.cargo\bin\flutter_rust_bridge_codegen.exe --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --llvm-path=E:\Data\LLVM
|
|
|
|
|
|
git clone https://github.com/rustdesk/rustdesk
|
|
git clone https://github.com/rustdesk/rustdesk
|
|
cd rustdesk
|
|
cd rustdesk
|
|
@@ -101,12 +118,63 @@ VCPKG_ROOT=$HOME/vcpkg cargo run
|
|
|
|
|
|
flutter_rust_bridge_codegen pushd flutter && flutter pub get && popd
|
|
flutter_rust_bridge_codegen pushd flutter && flutter pub get && popd
|
|
|
|
|
|
|
|
+flutter build apk --target-platform android-arm64
|
|
|
|
+
|
|
|
|
+flutter build windows
|
|
|
|
+
|
|
|
|
+
|
|
```
|
|
```
|
|
|
|
|
|
## 构建 windows 本地开发环境
|
|
## 构建 windows 本地开发环境
|
|
|
|
|
|
-也可以在windows开发,安装rust,flutter,Android,vs,vcpkg等:
|
|
|
|
|
|
+也可以在windows开发,安装rust,flutter,Android,vs,vcpkg(C++)等:
|
|
|
|
+
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+修改id 服务器 libs/hbb_common/src/config.rs :
|
|
|
|
|
|
```
|
|
```
|
|
|
|
+id_server = "127.0.0.1:8080"
|
|
|
|
+relay_server = "127.0.0.1:8080"
|
|
|
|
+api_server = "127.0.0.1:8081"
|
|
|
|
+key = "key"
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+编译windows:
|
|
|
|
+
|
|
|
|
+```
|
|
|
|
+# windows打包
|
|
|
|
+cargo build --release
|
|
|
|
+
|
|
|
|
|
|
|
|
+PS C:\Users\Administrator> $env:PATH += ";E:\Data\LLVM\lib"
|
|
|
|
+PS C:\Users\Administrator> $env:PATH += ";E:\Data\flutter\flutter_windows_3.13.1-stable\flutter\bin"
|
|
|
|
+dart pub upgrade
|
|
|
|
+flutter build windows
|
|
```
|
|
```
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+## 项目结构
|
|
|
|
+
|
|
|
|
+libs/hbb_common: 视频编解码, 配置, tcp/udp 封装, protobuf, 文件传输相关文件系统操作函数, 以及一些其他实用函数
|
|
|
|
+
|
|
|
|
+libs/scrap: 屏幕截取
|
|
|
|
+
|
|
|
|
+libs/enigo: 平台相关的鼠标键盘输入
|
|
|
|
+
|
|
|
|
+src/ui: GUI
|
|
|
|
+
|
|
|
|
+src/server: 被控端服务音频、剪切板、输入、视频服务、网络连接的实现
|
|
|
|
+
|
|
|
|
+src/client.rs: 控制端
|
|
|
|
+
|
|
|
|
+src/rendezvous_mediator.rs: 与rustdesk-server保持UDP通讯, 等待远程连接(通过打洞直连或者中继)
|
|
|
|
+
|
|
|
|
+src/platform: 平台服务相关代码
|
|
|
|
+
|
|
|
|
+flutter: 移动版本的Flutter代码
|
|
|
|
+
|
|
|
|
+flutter/web/js: Flutter Web版本中的Javascript代码
|