scrcpy的编译方法(window,UOS) 📅 2026/8/1 22:42:36 下面按你这台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.1scrcpy 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-dev2. 编译安装 SDL 3.4.12cd ~ 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_TYPERelease \ -DCMAKE_INSTALL_PREFIX/usr/local \ -DSDL_TESTSOFF cmake --build SDL3-3.4.12/build --parallel $(nproc) sudo cmake --install SDL3-3.4.12/build sudo ldconfig确认 SDL3pkg-config --modversion sdl3应该显示3.4.12如果找不到执行export PKG_CONFIG_PATH/usr/local/lib/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH3. 下载 scrcpy 4.1cd ~ git clone --depth 1 --branch v4.1 \ https://github.com/Genymobile/scrcpy.git scrcpy-4.1 cd ~/scrcpy-4.14. 修复 GCC 8.3 的 static_assert 兼容问题scrcpy 4.1 有一处单参数static_assertGCC 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.c5. 编译安装./install_release.sh如果之前已经构建失败可以清理后重新运行rm -rf build-auto ./install_release.sh如果已经完成 Meson 配置只差继续编译ninja -C build-auto sudo ninja -C build-auto install sudo ldconfig6. 检查版本hash -r command -v scrcpy scrcpy --version应该显示scrcpy 4.1三、编译 scrcpy 3.3.4scrcpy 3.3.4 使用SDL2更适合旧版 UOS不需要编译 SDL3也不需要修改static_assert。1. 安装 SDL2sudo apt install libsdl2-2.0-0 libsdl2-dev2. 下载 scrcpy 3.3.4cd ~ git clone --depth 1 --branch v3.3.4 \ https://github.com/Genymobile/scrcpy.git scrcpy-3.3.4 cd ~/scrcpy-3.3.43. 编译安装./install_release.sh如果之前构建过rm -rf build-auto ./install_release.sh4. 检查版本hash -r scrcpy --version应该显示scrcpy 3.3.4四、两个版本的主要区别项目scrcpy 4.1scrcpy 3.3.4图形库SDL3SDL2UOS 软件源通常没有 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.1Windows 下推荐使用本机已经安装的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 zip3. 下载匹配的 scrcpy-servercd /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 \ --buildtyperelease \ --strip \ -Db_ltotrue \ -Dportabletrue \ -Dprebuilt_serverscrcpy-server-v4.1 ninja -C build-win64生成的主要文件build-win64/app/scrcpy.exe build-win64/server/scrcpy-server5. 测试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)。