当前位置: 首页 > news >正文

scrcpy的编译方法(window,UOS)

下面按你这台UOS、GCC 8.3、Meson 0.61.2的环境总结。建议两个版本分别放在不同目录,避免构建缓存和 server 文件混用。

一、公共编译依赖

两个版本都先安装:

sudo apt update sudo apt install build-essential git wget adb ffmpeg \ pkg-config meson ninja-build cmake \ libavcodec-dev libavdevice-dev libavformat-dev \ libavutil-dev libswresample-dev \ libusb-1.0-0 libusb-1.0-0-dev libv4l-dev

二、编译 scrcpy 4.1

scrcpy 4.1 需要SDL3。UOS 软件源通常没有libsdl3-dev,需要手动编译 SDL 3.4.12。

1. 安装 SDL3 编译依赖

sudo apt install libasound2-dev libpulse-dev libdbus-1-dev \ libx11-dev libxext-dev libxrandr-dev libxcursor-dev \ libxfixes-dev libxi-dev libxss-dev libxtst-dev \ libxkbcommon-dev libgl1-mesa-dev

2. 编译安装 SDL 3.4.12

cd ~ git clone --depth 1 --branch release-3.4.12 \ https://github.com/libsdl-org/SDL.git SDL3-3.4.12 cmake -S SDL3-3.4.12 -B SDL3-3.4.12/build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DSDL_TESTS=OFF cmake --build SDL3-3.4.12/build --parallel "$(nproc)" sudo cmake --install SDL3-3.4.12/build sudo ldconfig

确认 SDL3:

pkg-config --modversion sdl3

应该显示:

3.4.12

如果找不到,执行:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH

3. 下载 scrcpy 4.1

cd ~ git clone --depth 1 --branch v4.1 \ https://github.com/Genymobile/scrcpy.git scrcpy-4.1 cd ~/scrcpy-4.1

4. 修复 GCC 8.3 的 static_assert 兼容问题

scrcpy 4.1 有一处单参数static_assert,GCC 8.3 编译不过,执行:

sed -i 's|static_assert(sizeof(info->device_name) == SC_DEVICE_NAME_FIELD_LENGTH);|static_assert(sizeof(info->device_name) == SC_DEVICE_NAME_FIELD_LENGTH, "device_name size mismatch");|' app/src/server.c

确认修改:

grep -n "static_assert(sizeof(info->device_name)" app/src/server.c

5. 编译安装

./install_release.sh

如果之前已经构建失败,可以清理后重新运行:

rm -rf build-auto ./install_release.sh

如果已经完成 Meson 配置,只差继续编译:

ninja -C build-auto sudo ninja -C build-auto install sudo ldconfig

6. 检查版本

hash -r command -v scrcpy scrcpy --version

应该显示:

scrcpy 4.1

三、编译 scrcpy 3.3.4

scrcpy 3.3.4 使用SDL2,更适合旧版 UOS,不需要编译 SDL3,也不需要修改static_assert

1. 安装 SDL2

sudo apt install libsdl2-2.0-0 libsdl2-dev

2. 下载 scrcpy 3.3.4

cd ~ git clone --depth 1 --branch v3.3.4 \ https://github.com/Genymobile/scrcpy.git scrcpy-3.3.4 cd ~/scrcpy-3.3.4

3. 编译安装

./install_release.sh

如果之前构建过:

rm -rf build-auto ./install_release.sh

4. 检查版本

hash -r scrcpy --version

应该显示:

scrcpy 3.3.4

四、两个版本的主要区别

项目scrcpy 4.1scrcpy 3.3.4
图形库SDL3SDL2
UOS 软件源通常没有 SDL3通常自带 SDL2
是否需编译 SDL通常需要不需要
GCC 8.3 补丁需要修改一处static_assert不需要
安装难度较高较低
建议用途需要 4.x 新功能旧系统稳定投屏

如果只是普通手机投屏和控制,建议在这台旧版 UOS 上使用3.3.4;需要弹性虚拟屏、VP8/VP9 等新功能时再使用4.1

两个版本都会安装到/usr/local/bin/scrcpy,所以最后安装的版本会覆盖前一个版本。客户端与scrcpy-server必须版本一致,不要手动混用。官方说明可参考:构建文档和4.1 发布说明。

下面介绍windows下编译方法

这个目录是scrcpy 4.1,Windows 下推荐使用本机已经安装的MSYS2 MinGW64编译。当前缺少 SDL3、libusb、Meson 和 Ninja。

1. 打开 MSYS2 MinGW x64

运行:

C:\msys64\mingw64.exe

不要使用普通 PowerShell 或 MSYS 终端。

2. 安装依赖

pacman -Syu pacman -S --needed \ mingw-w64-x86_64-sdl3 \ mingw-w64-x86_64-ffmpeg \ mingw-w64-x86_64-libusb \ mingw-w64-x86_64-gcc \ mingw-w64-x86_64-pkgconf \ mingw-w64-x86_64-meson \ mingw-w64-x86_64-ninja \ mingw-w64-x86_64-make \ curl zip

3. 下载匹配的 scrcpy-server

cd /d/working/hegui/COMP-BOLIANPC/LINUX_package/scrcpy curl -L \ -o scrcpy-server-v4.1 \ https://github.com/Genymobile/scrcpy/releases/download/v4.1/scrcpy-server-v4.1 echo "deacb991ed2509715160ffdc7907e47b4160eb30d1566217e9047fd5b8850cae scrcpy-server-v4.1" \ | sha256sum -c -

应当显示OK

4. 编译 Windows 64 位客户端

rm -rf build-win64 meson setup build-win64 \ --buildtype=release \ --strip \ -Db_lto=true \ -Dportable=true \ -Dprebuilt_server=scrcpy-server-v4.1 ninja -C build-win64

生成的主要文件:

build-win64/app/scrcpy.exe build-win64/server/scrcpy-server

5. 测试

cp build-win64/server/scrcpy-server build-win64/app/ cd build-win64/app ./scrcpy.exe --version

不过,要复制给其他 Windows 电脑运行,还需要把/mingw64/bin中依赖的 FFmpeg、SDL3、libusb 等 DLL,以及下面三个 ADB 文件一起打包:

adb.exe AdbWinApi.dll AdbWinUsbApi.dll

这些 ADB 文件可以从这里取得:

C:\Users\VISION16Pro\AppData\Local\Android\Sdk\platform-tools

项目自己的官方编译说明位于 [doc/build.md](D:/working/hegui/COMP-BOLIANPC/LINUX_package/scrcpy/doc/build.md),Windows 发布构建逻辑位于 [release/build_windows.sh](D:/working/hegui/COMP-BOLIANPC/LINUX_package/scrcpy/release/build_windows.sh)。

http://www.jsqmd.com/news/1309759/

相关文章:

  • 【AI用户体验优化黄金法则】:20年实战验证的7大不可忽视的转化提升策略
  • 外贸销冠如何转型为管理者?林芳老师分享3个关键跃迁 - 外贸圈集团
  • AI 生成的代码上线前怎么做安全检查?一份可执行的审查清单
  • 2026 年 8 月北京老房翻新装饰公司榜单|6 家无套路靠谱装修企业推荐 - 好物分享知识传播
  • AGI时代测试开发工程师的技能升级与实践
  • AdGuard ContentBlocker终极配置指南:自定义过滤器让浏览体验提升10倍
  • FunASR快速实战:3步完成语音识别服务容器化部署
  • 为什么92%的AI配乐项目在混音阶段失败?——资深音效总监亲授“人机协同配乐工作流”黄金6步法
  • 凌晨3点还在改日报?用这1个Python脚本+2个API调用,今天下午就能跑通首版AI日报闭环
  • 三步改造:让你的小爱音箱变身AI智能助手
  • CentOS安装Docker记录
  • 2026国内领先少儿编程培训品牌口碑榜推荐 - 招财兔数字员工
  • 推荐一个模拟路线软件:如何选择适合自己的路线模拟工具?
  • 思源宋体CN:7种字重开源中文字体完全配置指南
  • rk平台怎么抓取raw图并在Ubuntu下显示
  • Python深度学习在糖尿病视网膜病变自动诊断中的应用
  • 5分钟掌握Windows右键菜单革命:Nilesoft Shell完全指南
  • 2026 年 8 月北京老房改造装修公司测评榜单|6 家专业靠谱商家推荐 - 好物分享知识传播
  • ITIL4服务目录管理:从技术到业务的转型实践
  • SSA-BPNN混合算法在复杂环境定位中的优化应用
  • 终极免费解锁Wand专业版:5分钟永久移除2小时限制的完整指南
  • 基于Flask+Vue的农产品扶贫系统开发实践
  • AI 时代如何为“数字员工”划清身份边界?
  • AI引用优化:提升技术问答页面被大模型引用的策略
  • 深度解析DLX:自托管翻译API服务的实战指南与架构揭秘
  • 3DS启动环境升级终极指南:从A9LH到B9S的完整迁移方案
  • 5个关键策略:如何将GitHub Trending skills项目的AI技能执行效率提升300%
  • macos-wallpaper多屏幕管理:轻松设置不同显示器壁纸
  • 基于Matlab的水果检测算法实现与优化
  • SpringBoot网吧管理系统开发实战与架构设计