localsend编译

LocalSend 是一款开源、跨平台的 本地网络文件传输工具,旨在通过局域网实现设备间快速、安全的文件共享,无需依赖互联网或第三方服务器。它支持 Windows、macOS、Linux、Android、iOS 等多个平台,适用于家庭、办公室等场景的文件传输需求。在执行编译localsend的过程中,需要安装以下环境:

  • choco
  • rust
  • fvm
  • git
  • flutter
  • Android Studio

以上环境配置缺一不可,在编译的过程中需要各个工具的紧密配合,不然会导致报错导致编译不成功,本文章介绍了这些工具的安装及使用,以及最终的LocalSend编译全过程。

1.安装choco工具

Chocolatey(简称 choco) ,官方网站是一款为 Windows 系统设计的命令行软件包管理工具,类似于 Linux 中的 apt 或 yum。它允许用户通过简单的命令快速安装、更新、卸载软件。其功能特点包括:

  • 自动化软件安装和管理。
  • 支持数千个开源和商业软件包(如 Chrome、VSCode、Java 等)
  • 可与脚本集成,简化部署流程。

安装需要使用管理员权限打开powershell窗口,执行以下命令

# 临时更改当前 PowerShell 进程的执行策略
# Bypass:绕过执行策略限制,允许运行所有脚本
# -Scope Process:只影响当前 PowerShell 会话
# -Force:强制执行,不显示确认提示
# 这是为了允许运行安装脚本而临时放宽安全限制
Set-ExecutionPolicy Bypass -Scope Process -Force
# irm 是 Invoke-RestMethod 的别名,用于下载网络内容
# 从 Chocolatey 官方网址下载安装脚本
# | iex 通过管道将下载的脚本传递给 Invoke-Expression(执行)
# 即下载后立即执行安装脚本
irm https://community.chocolatey.org/install.ps1 | iex
# 检查choco安装版本
choco -v

2.安装Rust

Rust 是一种现代的系统级编程语言,专注于 内存安全高性能并发支持,旨在替代 C/C++ 等传统系统语言,解决其内存管理和并发编程中的常见问题。主要特点如下:

  • Rust 通过所有权(Ownership)和借用(Borrowing)机制在编译期检查内存错误,避免空指针、数据竞争、内存泄漏等问题,无需依赖垃圾回收(GC)。
  • 性能与 C/C++ 相当,支持零成本抽象(Zero-cost Abstractions),可直接操作硬件,适合嵌入式和高性能计算场景。
  • 通过所有权和类型系统保障线程安全,消除数据竞争,简化多线程编程。

Rust是localsend必备的运行环境,安装过程中必须要安装rust,且在安装过程中会弹出弹窗,需要安装Visual Studio Installer,并安装其中的一些必备环境,根据以下文档即可完成正确的安装,首先进入官网下载安装包进行安装。

运行rustup-init.exe文件,输入1选择标准安装模式

在安装过程中提示需要安装c++编译工具,输入Y进行继续

系统会自动打开一个弹窗,需要用户安装Visual Studio Installer,在Visual Studio Installer中安装两个组件,而且在安装过程中必须要保证C盘有5.6G的存储空间,不然会导致安装失败,如果安装失败请参考故障处理第一条解决方案.

在安装完组件后,系统会自动执行后续的安装,当安装完成后会弹出如下对话框,输入任意键安装完成

3.安装fvm

FVM(Flutter Version Manager) 是专为 Flutter 开发者 设计的命令行工具,用于管理多个 Flutter SDK 版本,解决多项目版本冲突问题。其核心功能是多版本隔离(支持同时安装稳定版、测试版及自定义版本的 Flutter SDK)、快速切换(通过命令 fvm use 在不同项目或全局环境中切换版本,确保开发环境一致性)和空间优化(共享重复版本的 SDK 文件,减少磁盘占用)。

fvm官网可以看到他们推荐的安装方式是通过choco进行安装。

执行以下命令(装完FVM后不要急着装Flutter,需要先按下面的第4点安装Git)

#安装fvm,在安装过程中有两次提示,第一次输入Y,第二次必须输入A,不然会卡住不往下执行
choco install fvm #检查fvm版本
fvm --version

4.安装Git

Git 是一款开源的分布式版本控制系统(Distributed Version Control System, DVCS),由 Linus Torvalds 于 2005 年开发,最初用于管理 Linux 内核代码。它的核心目标是高效追踪代码变化、支持多人协作,并确保代码历史的完整性和可追溯性。如今,Git 已成为全球软件开发的标准工具,被广泛应用于个人项目和团队协作。

安装flutter前必须要安装Git,不然会报错,可以使用choco工具很方便的进行Git的安装,执行以下命令

#安装git
choco install git #安装完成后在新窗口执行以下命令,检查是否安装完成
git -v

安装完成后使用新的窗口执行以下命令,出现git版本号说明安装完成

5.安装flutter

Flutter 是由 Google 开发的开源UI工具包,旨在通过一套代码库高效构建跨平台应用,覆盖移动端(iOS/Android)、Web、桌面端(Windows/macOS/Linux)及嵌入式设备(如 Fuchsia OS)。其核心目标是提供高保真、高性能的用户体验,同时支持快速开发和灵活扩展。

可以通过fvm去管理flutter的不同版本,在这个项目中,通过查看项目源代码,发现项目使用的3.24.5版本。

执行以下命令安装flutter

#安装3.24.5版本的flutter
fvm install 3.24.5 #查看安装状态
fvm list

安装完成后需要添加flutter到环境变量中,找到fvm的安装目录,一般安装目录在用户\fvm\default\bin下

找到了flutter的安装目录后,进行环境变量配置,需要删除掉dart-sdk的环境变量,该环境变量是安装fvm时自动进行配置的,在flutter的环境变量中也存在dart的配置,如果存在两个dart会存在冲突的情况,由于flutter的版本和dart的版本进行了绑定,所以必须删除掉该dart

环境变量配置完成后,打开一个新窗口,执行以下命令,检查flutter的状态

#检查flutter版本
flutter -v #检查flutter相关的环境是否配置成功
flutter doctor

执行完flutter -v后,如果出现以下截图,这说明环境变量配置成功

执行flutter doctor后可以看到缺失了很多相关的配置,需要一个个进行安装

6.安装安卓开发工具

官方下载地址

安装Android Studio,打开可执行文件,点击下一步->下一步按照提示进行安装

安装完成后需要配置Android-SDK,第一次打开工具后会提示需要下载Android-SDK,直接选择默认的进行下载即可

安装完成SDK后,在SDK管理界面还需要安装命令行工具,根据下面的截图,安装上Android SDK Command-line Tools

安装完以上内容,安卓开发环境已经处理完毕

7.配置VisualStudio

根据第5章的配置检查,我们发现还缺少C++桌面编译环境的配置,所以必须要通过Visual Studio Installer进行安装

选中这三个配置进行安装,安装过程会比较长,请耐心等待,安装完成后还需要进行配置检查,如果缺少其他配置,比如谷歌浏览器请自行下载一个谷歌浏览器进行安装

经过检查,执行flutter doctor命令后,已经全部通过,说明能正式开始进入编译环节

8.LocalSend编译

网址:https://github.com/localsend/localsend/tree/main

输入github上的地址进入官网,找到克隆地址:https://github.com/localsend/localsend.git

# 在指定文件夹下输入以下命令进行代码克隆
git clone https://github.com/localsend/localsend.git

源代码下载下来后,需要使用管理员启动PowerShell,通过cd命令进入源码的app目录下,执行flutter pub get命令进行依赖的下载

依赖下载完成后可以执行以下命令进行编译,如果依赖下载失败,请参考故障处理中的方法进行解决

#可视化的方式编译成Windows版本
flutter build windows -v

大约等待30分钟,编译完成后会在build文件夹下创建应用

运行localsend_app.exe

故障处理

1.安装Rust时磁盘空间不足

解决方案:在安装前保证C盘至少有6G的存储空间

2.安装flutter时缺少git

解决方案:使用命令 choco install git进行安装

3.flutter依赖下载缓慢或报错

由于flutter默认使用https://pub.dev/这个地址下载镜像,但是由于国内的网络原因,会导致下载缓慢或超时报错等异常情况,所以推荐使用国内的镜像仓库

解决方案:配置环境变量,在变量中设置镜像仓库的地址

变量名:PUB_HOSTED_URL

变量值:https://pub.flutter-io.cn

变量名:FLUTTER_STORAGE_BASE_URL

变量值:https://storage.flutter-io.cn

全文完,请大家专注我们的B站视频号和微信公众号,如果对编译过程有疑问或者想与大家一起讨论开源软件的定制化,请大家加入我们的QQ群畅所欲言。

LocalSend 编译全过程深度讲解,解决手机与电脑互传文件痛点的更多相关文章

  1. 电脑kail linux 连接手机Nethunter,手机和电脑互传文件

    1.开启nethunter的ssh 修改/etc/ssh/sshd_config 参考:解决kali linux 开启ssh服务后连接不上的问题 2.如果在手机终端修改不了(我的就是怎么也改不了),可 ...

  2. iPhone手机怎么和电脑互传文件,一条数据线搞定

    官方的方法是,通过iTunes进行文件的传输.传个文件还要特意安装个iTunes,实在是麻烦. 其实我们只需要在苹果应用商店app store下载Documents这个文件就可以. 另外,Docume ...

  3. 解决COS、FileUpload上传文件时中文文件名乱码问题

    方法: MultipartParser mp = new MultipartParser(request, 10*1024*1024); mp.setEncoding("GBK") ...

  4. MAC下如何连接安卓(小米)手机进行互传文件?

    命令行: brew cask install android-file-transfer AndroidFileTransfer, 在andorid设备和您的mac电脑之间浏览和传输文件: 不论通过什 ...

  5. 解决OpenFeign默认无法上传文件的问题

    前言 最近在项目中使用OpenFeign时,发现其不支持文件上传功能.网上找了很多资料,最后找到feign-form和feign-form-spring的解决方案.但其默认只支持单文件上传,不支持多文 ...

  6. Java如何解决form表单上传文件,以及页面返回处理结果通知!

    前端JSP代码 <form id='formSumbit' class='form-horizontal' action='/ncpay/route/chlsubmcht/batchImpor' ...

  7. (备忘)解决用Xftp向CentOS7 传文件速度慢的问题

    问题原因:之前用XFTP上传文件的时候一直挺好的,今天突然速度特别慢,上传了一个多小时也没把一个一百兆的文件成功上传 查询过程: 1.网络原因:网络的确有点卡,但不至于这么慢吧,几K的速度,鉴于网络问 ...

  8. 安卓手机与电脑无线传输文件(利用ftp服务)

    安卓手机与电脑无线传输文件(利用ftp服务) 手机与电脑无线传输文件,手机开启ftp服务,电脑能够对手机内全部文件进行全方位管理,包括上传.下载.新建.删除等,而且手机和电脑能够双向传输,很方便.手机 ...

  9. Android手机播放电脑视频文件-屌丝必备

    今天早上一到办公室,照常打开博客园看文章,看到有一片文章是用  http://www.cnblogs.com/wdfrog/p/3738180.html 看到这哥们实现的方法好复杂,又是配置电脑端,又 ...

  10. php_admin_value open_basedir 引起的上传文件失败解决方法

    为了安全,我们通常会在虚拟主机设置中,加入这一行php_admin_value open_basedir "/usr/local/apache/htdocs/www"但这会导致mo ...

随机推荐

  1. .netCore 使用 Quartz 实例

    一.参考源文链接 1.https://www.likecs.com/show-897836.html 2.https://blog.csdn.net/weixin_43614067/article/d ...

  2. wxFormBuilder 代码运行报错,尝试删除报错代码部分语句

    解决方法: 定位到第60行,删掉部分代码如下 bSizer1.Add(gbSizer1, 1, wx.EXPAND , 1) 运行后效果如下图:

  3. bp安装+匹配规则(防止抓火狐的多余包)

    bp安装使用 BurpLoaderKeygen.jar: 2c8c7b95640f31985f83580402f26a06b78c55877fa33ef1f9d14d2ebb2d8ecd burpsu ...

  4. antd+vue 中select组件的自定义后缀图标不显示问题记录

    根据项目需求,需要使用select组件,并自定义后缀图标,但是设置了没的效果,这是我的代码和效果图 后来查看代码发现需要给select组件加上showArrow属性,然后实现了效果,看效果图 这里记录 ...

  5. nginx服务和uwsgi服务如何设置开机自启动

    上次学到了在云服务器下如何部署Django项目,用到了nginx服务和uwsgi服务,需要手工启动这2个服务的命令. 现在考虑如何设置开机自启动,为什么要这样考虑?因为服务器万一出问题,意外重启了,那 ...

  6. Delphi编写的一款锁屏小工具

    Delphi编写的一款锁屏小工具,双击程序立即锁屏,木有界面的.解除锁屏密码:alt+空格. unit Unit1; interface uses Windows, Messages, SysUtil ...

  7. 使用自制离线数据跑通ElasticFusion

    使用自制离线数据跑通ElasticFusion 实验环境及设备 实验环境: Ubuntu22.04 RTX3060 实验设备: 小米13(Android) Realsense D455 一句话总结就是 ...

  8. 使用 PHP 创建 Excel 读取器类

    介绍: PHPExcel-1.8.1读取excel 创建 ExcelReader 类: ExcelReader 类旨在从 Excel 文件中读取数据.它以文件路径作为输入,并提供一个方法来从 Exce ...

  9. halcon 深度学习教程(三) 目标检测之水果分类

    原文作者:aircraft 原文链接:halcon 深度学习教程(三) 目标检测之水果分类 - aircraft - 博客园 深度学习教程目录如下,还在继续更新完善中 深度学习系列教程目录 有兴趣可以 ...

  10. 掌握FastAPI与Pydantic的跨字段验证技巧

    title: 掌握FastAPI与Pydantic的跨字段验证技巧 date: 2025/04/01 00:32:07 updated: 2025/04/01 00:32:07 author: cmd ...