前言
因为向日葵等远程软件存在文件传输不稳定,限速等问题,公司要求对开源软件rustdesk下手(我也是第一次接触。。),于是我便开始研究。
一、rustdesk是什么?
官方的简要描述是:用 Rust 编写。开箱即用,无需配置。您可以完全控制您的数据,无需担心安全问题。您可以使用我们的集合点/中继服务器。
反正就是一个向日葵和teamviewer的替代品。
rustdesk官网的地址:https://rustdesk.com/zh/
开源代码在github上的地址:https://github.com/rustdesk/rustdesk
二、使用步骤
稍微看了一下源码,页面使用react写的,后端代码是用rust(我也没学过。。。)类似于c++,公司需求主要是改页面和ip固定,那其实还是比较简单的毕竟这样不用深究原理啥的,废话不多说,我们直接开始准备环境
1.安装软件
- Git-----到时候从github或gitee上拉源码(Git - Downloads)
- rustup-init----rust开发环境,反正就是安装进去输个1等待下载完成就ok了(Rust 环境搭建 | 菜鸟教程)注意检查cargo -V和 rustc -V
- c++的环境,我是直接在visual studio 2022社区版上下载的(方式很多)
- 最后是LLVM,查了一下是用来优化编译速度的,其实后面编译还是很慢。。(LLVM Download Page)注意这个安装的最后选择add llvm to the system Path for all users进行环境变量添加,不然后续编译可能会报错
2.命令操作
- 首先建一个文件夹,我们把东西都放在这里面,直接右键git bash here打开命令行,我是在E盘下面操作
#切换到E盘
e:
#创建一个work目录并进入
mkdir work
cd work/
#下面使用命令安装vcpkg,并VCPKG_ROOT正确设置环境变量
#拉取vcpkg的源码
git clone https://github.com/microsoft/vcpkg
#在work根目录下执行,在vcpkg文件根目录生成vcpkg.exe文件
./vcpkg/bootstrap-vcpkg.bat
#添加系统环境变量(参照我的自行修改)
变量名:VCPKG_ROOT
变量值:E:\work\vcpkg
#执行安装环境,这里是个大坑,因为他下载东西是外网的,所以你要么找个科学上网器(这个比较轻松),要么用其他方式下载了放到固定的目录,不然会报错。
vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static
#下面就是拉取rustdesk源码了
git clone https://github.com/rustdesk/rustdesk
#进入rustdesk根目录
cd rustdesk/
#下载sciter.dll,用来辅助编译运行的,下载地址(https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll)
#在rustdesk根目录下建文件夹target,进入target建文件夹debug,然后将sciter.dll放进去
#上面步骤出都没有出现错误在rustdesk根目录下执行
cargo run
#等待编译完成会弹出rustdesk的图形界面
3.关于编译和构建
- cargo run 成功后将依赖和exe生成在debug目录下,若想要直接双击rustdesk.exe文件运行,需要将rustdesk根目录的src复制一份到debug根目录下(不然会黑屏或白屏)。
- 项目构建用cargo build 或 cargo build --release,后面这个会在debug同级目录下生成一个release文件夹,我感觉和debug的没啥区别,说是啥优化版本,我也不会。
4.打包
官方提供的是两种:一种是执行运行的,一种是可安装的。
1.首先介绍可安装的
- 从官方下载的源码中有个setup.nsi文件,需要借助nsis打包工具
- 下载nsis工具无脑安装Download NSIS: Nullsoft Scriptable Install System from SourceForge.net
- 添加下面代码到文件指定位置,注意路径对应,有错的自行修改
#File "${PRODUCT_NAME}.exe" File "target\release\${PRODUCT_NAME}.exe" File "target\release\sciter.dll" SetOutPath $INSTDIR\src File /r "src\ui" SetOutPath $INSTDIR
- 打开nsis工具导入文件执行
- 最后当前目录下生产安装包
rustdesk-1.1.9-setup.exe(可按最后的参考文章进行)
2.下面是直接可执行程序
- 其实生成的文件只需三个就可以运行
- 原理就是选中这三个文件用winrar压缩成exe文件(参考这篇文章不过多介绍【WINRAR】执行文件+依赖库统一打包成一个exe文件_赟赟赟的博客-CSDN博客_winrar打包exe)
5.其他问题
- 关于点击exe执行文件产生命令行窗口,需要修改main.rs源码文件中的代码,#![windows_subsystem = "windows"]注释掉窗口显示。
- 目前该项目并不是完全开源,只是开源了80%左右,作者还是保留部分源码,目前rustdesk已经好几个月没更新了,这是官网回复的原因
- 该软件尽量在windows10以及以上运行,老系统或部分环境出现错误建议关闭杀毒软件试试
6.总结
文章可能部分有错,我是小白望多指正。。
参考文章
rust 02 rustdesk基于rust的开源远程控制软件_longji的博客-CSDN博客_rust远程控制
【WINRAR】执行文件+依赖库统一打包成一个exe文件_赟赟赟的博客-CSDN博客_winrar打包exe
版权归原作者 胡图图爸爸胡英俊 所有, 如有侵权,请联系我们删除。