记编译RustDesk源码

环境:

        win10, 

        Visual Studio  Community 2019  - 16.11.4

        git bash  科学上网 git 代理

源码 : RustDesk 1.2.3-2

一. R环境

使用 rustc <= 1.77, 1.78 引入 ABI 更改,(参考: overflow when run cargo · Issue #8263 · rustdesk/rustdesk (github.com))我是运行时,报错搜索 INFO librustdesk::core_main] main start args:[]   找到的,但其实不是同一个问题(后面解释),这里好像最新版本 1.79的rustc也是OK的,   下文用的是降到1.76版的,成功运行。

下载 Rustup-init.exe     官网: Install Rust - Rust Programming Language (rust-lang.org)

# 查看版本
rustc --version
cargo --version
# 切换版本: 
rustup install 1.76  
rustup default  1.76-x86_64-pc-windows-msvc   
# 查看默认版本
rustup toolchain list

 cargo版本自动匹配, 所以更改后 cargo run会重新update,  所以最好先设好rustc 的默认版本
        参考:rust切换老版本及卸载指定版本_rustup toolchain 历史版本-CSDN博客

二、MSVC环境

        由于我的命令都时在 git-bash 中执行的, 所以需要设置 cl 编译环境, 在VS的 Native Tool 命令终端应该能识别该环境,不过我没在那里进行,具体不了解。

         设置cl环境参考: bin  Include Lib, 测试编译一个hello成功;

VS 2019手动搭建C/C++编译链接环境_vs2019编译器在哪个文件夹-CSDN博客

VS2019 | Visual Studio编译器cl.exe环境变量配置 | cl命令行选项 | fatal error C1034:不包括路径集_visual studio2019环境变量设置-CSDN博客

三、安装 vcpkg, llvm , 下载 RustDesk 源码 (80% 开源)

        vcpkg  install 是最难的部分, 主要下载 相关工具,cmake 等, 然后找到系统中的 cl.exe 工具链, 过程中下载很多包,所以保证科学上网正常。 

我是在 git bash 下运行的

# 安装 vcpkg
git clone https://github.com/microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat

# 配置 VCPKG_ROOT 环境变量。vcpkg 编译后,会在源代码目录生成 vcpkg.exe 文件,指向那个目录就可以了
VCPKG_ROOT = E:\work\gitwork\vcpkg

# 安装编译相关依赖
vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static

# 安装 llvm,下载地址
https://prereleases.llvm.org/win-snapshots/LLVM-12.0.0-6923b0a7-win64.exe
# 设置 llvm 库环境变量
安装llvm, 设置LIBCLANG_PATH环境变量为llvm_install_dir/bin

# clone rustdesk 源码
git clone https://github.com/rustdesk/rustdesk.git
vcpkg install 一大段过程最后安装完成

参考: VS 2019手动搭建C/C++编译链接环境_vs2019编译器在哪个文件夹-CSDN博客

四、cargo 编译 RustDesk

    到这里,才开始真正编译工程(允悲!)

        cargo run 或 cargo build --release

这里要注意,Updating很容易失败,解决办法是 换cargo源 和 设置 git http 代理,个人感觉后一个的作用更大,设置后很顺滑;

# 到 rustdek 源码根目录,编译运行
cargo run

报错:且白屏;

其实生成的文件只需三个就可以运行 (src文件夹, rustesk.exe 和 sciter.dll),上图错误是在 debug路径下执行, 拷贝到 src所在的工程根目录则正常显示,bingo!点击启动服务。 最后也可打包发布 (nsis工具)。

错题本:

cl.exe 设为兼容 管理员打开

cmd 的 设置过AutoRun (注册表), 导致错误 需删掉。 参考: vcpkg安装包错误,运行vcvarsall.bat使Visual在退出代码1中失败-腾讯云开发者社区-腾讯云 (tencent.com)

问题: 缺少 plugin 插件  功能。

参考:

在 Windows 10 系统上编译 RustDesk-百度开发者中心 (baidu.com)

在 Windows 10 系统编译 RustDesk - 掘金 (juejin.cn)

配置cargo国内源_cargo 国内源-CSDN博客

【Rust】cargo update或者cargo build国内被墙失败解决办法_failed to update replaced source registry `crates--CSDN博客
vcpkg安装包错误,运行vcvarsall.bat使Visual在退出代码1中失败-腾讯云开发者社区-腾讯云 (tencent.com)

关于rustdesk源码二次改造并编译打包的问题_rustdesk 编译-CSDN博客
 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值