关于rustdesk源码二次改造并编译打包的问题

目录

前言

二、使用步骤

1.安装软件

2.命令操作

3.关于编译和构建

4.打包

1.首先介绍可安装的

2.下面是直接可执行程序

 5.其他问题

6.总结

参考文章


前言

因为向日葵等远程软件存在文件传输不稳定,限速等问题,公司要求对开源软件rustdesk下手(我也是第一次接触。。),于是我便开始研究。


一、rustdesk是什么?

官方的简要描述是:用 Rust 编写。开箱即用,无需配置。您可以完全控制您的数据,无需担心安全问题。您可以使用我们的集合点/中继服务器。

反正就是一个向日葵和teamviewer的替代品。

rustdesk官网的地址:https://rustdesk.com/zh/

开源代码在github上的地址:https://github.com/rustdesk/rustdesk

二、使用步骤

稍微看了一下源码,页面使用react写的,后端代码是用rust(我也没学过。。。)类似于c++,公司需求主要是改页面和ip固定,那其实还是比较简单的毕竟这样不用深究原理啥的,废话不多说,我们直接开始准备环境

1.安装软件

  1. Git-----到时候从github或gitee上拉源码(Git - Downloads)
  2. rustup-init----rust开发环境,反正就是安装进去输个1等待下载完成就ok了(Rust 环境搭建 | 菜鸟教程)注意检查cargo -V和 rustc -V
  3. c++的环境,我是直接在visual studio 2022社区版上下载的(方式很多)
  4. 最后是LLVM,查了一下是用来优化编译速度的,其实后面编译还是很慢。。(LLVM Download Page)注意这个安装的最后选择add llvm to the system Path for all users进行环境变量添加,不然后续编译可能会报错

2.命令操作

  1. 首先建一个文件夹,我们把东西都放在这里面,直接右键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.关于编译和构建

  1. cargo run 成功后将依赖和exe生成在debug目录下,若想要直接双击rustdesk.exe文件运行,需要将rustdesk根目录的src复制一份到debug根目录下(不然会黑屏或白屏)
  2. 项目构建用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
    

    关于rustdesk源码二次改造并编译打包的问题_第1张图片

  • 打开nsis工具导入文件执行关于rustdesk源码二次改造并编译打包的问题_第2张图片 

  • 最后当前目录下生产安装包 rustdesk-1.1.9-setup.exe(可按最后的参考文章进行)

2.下面是直接可执行程序

  1. 其实生成的文件只需三个就可以运行关于rustdesk源码二次改造并编译打包的问题_第3张图片
  2. 原理就是选中这三个文件用winrar压缩成exe文件(参考这篇文章不过多介绍【WINRAR】执行文件+依赖库统一打包成一个exe文件_赟赟赟的博客-CSDN博客_winrar打包exe)

 5.其他问题

  1. 关于点击exe执行文件产生命令行窗口,需要修改main.rs源码文件中的代码,#![windows_subsystem = "windows"]注释掉窗口显示。
  2. 目前该项目并不是完全开源,只是开源了80%左右,作者还是保留部分源码,目前rustdesk已经好几个月没更新了,这是官网回复的原因
  3. 该软件尽量在windows10以及以上运行,老系统或部分环境出现错误建议关闭杀毒软件试试

6.总结

        文章可能部分有错,我是小白望多指正。。


参考文章

rust 02 rustdesk基于rust的开源远程控制软件_longji的博客-CSDN博客_rust远程控制

【WINRAR】执行文件+依赖库统一打包成一个exe文件_赟赟赟的博客-CSDN博客_winrar打包exe

你可能感兴趣的:(rust,rust,开发语言,后端,react)