开发:Windows和Linux下远程控制之tigervnc

介绍

为什么要使用tigervnc,根据当前工程使用的情况来看:

  • 跨平台

    支持多种操作系统,包括Linux,Windows和macOS,因此可以在不同平台间实现远程控制和访问。

  • 开源

    tigervnc是开源的,采用GNU GPL开源协议发布。

  • 性能
    从使用情况来看,使用tigervnc的客户端远程控制和访问,画面展示帧率较高(不会像使用tightvnc那样类似播放幻灯片的效果)。如下是在被控制端播放适配的情况下,在控制端的查看情况:

tightvnctigervnc
带宽在这里插入图片描述在这里插入图片描述
画面幻灯片效果较流程
CPU15-20%5-10%

环境准备

VNC官网:TigerVNC

vnc版本:tigervnc-1.13.1

源码:TigerVNC/tigervnc: High performance, multi-platform VNC client and server (github.com)

path:适配修改客户端的屏幕比服务端的屏幕小,需要鼠标指正滚动的情况,修改客户端显示的时候自动缩放。

Linux编译

编译目录结构

build.sh package.sh tigervnc-1.13.1

编译脚本(build.sh):

# 安装依赖
sudo apt-get install cmake libssl-dev libxtst-dev libpam0g-dev libjpeg-turbo8-dev libtool-bin build-essential
sudo apt-get install libfltk1.3-dev

cd tigervnc-1.13.1
mkdir build
cd build

# 配置生成makefile和编译
cmake ..
make

打包脚本(package.sh):

rm -rf bin
mkdir bin

# 拷贝
cp -af ./tigervnc-1.13.1/build/vncviewer/vncviewer ./bin
cp -af ./tigervnc-1.13.1/build/vncviewer/x0vncserver ./bin

cp -af /usr/lib/x86_64-linux-gnu/libjpeg.so* ./bin
cp -af /usr/lib/x86_64-linux-gnu/libfltk_images.so* ./bin
cp -af /usr/lib/x86_64-linux-gnu/libfltk.so* ./bin

Windows编译

  • 32位动态编译

    启动MINGW32,如下:

    在这里插入图片描述

    执行如下命令:

    # 安装依赖
    pacman -Syu 
    pacman -S make yasm diffutils pkg-config
    pacman -S mingw-w64-i686-cmake
    pacman -S mingw-w64-i686-fltk
    pacman -S mingw-w64-i686-gnutls
    pacman -S mingw-w64-i686-gcc
    pacman -S mingw-w64-i686-make
    pacman -S mingw-w64-i686-pixman
    
    # 生成makefile文件
    cmake -G "MSYS Makefiles" ../
    
    # 编译
    make
    

    可执行程序的动态库,可使用depends来查看其依赖的库(注意需要使用64的depends)。在C:\msys64\mingw32\bin目录下去拷贝对应的动态库。

  • 64位动态编译

    启动MINGW64,如下:

    在这里插入图片描述

    执行如下命令:

    # 安装依赖
    pacman -Syu
    pacman -S make yasm diffutils pkg-config
    pacman -S mingw-w64-x86_64-cmake
    pacman -S mingw-w64-x86_64-fltk
    pacman -S mingw-w64-x86_64-gnutls
    pacman -S mingw-w64-x86_64-gcc
    pacman -S mingw-w64-x86_64-make
    pacman -S mingw-w64-x86_64-pixman
    
    # 生成makefile文件
    cmake -G "MSYS Makefiles" ../
    
    # 编译
    make
    

    可执行程序的动态库,可使用depends来查看其依赖的库(注意需要使用64的depends)。在C:\msys64\mingw64\bin目录下去拷贝对应的动态库。如下是64位运行依赖的库。

    在这里插入图片描述

  • 静态编译

    静态编译生成的文件会将动态库打包到可执行程序中,只需要一个exe即可执行程序

    • 修改静态编译的cmake文件:

      在静态编译过程中tigerVNC会报各种错误异常, 有的时候错误是依赖库出了问题, 这里我们修改一下依赖库文件。

      修改文件:tigervnc\cmake\StaticBuild.cmake,修改内容:

      # 第68行
      set(GNUTLS_LIBRARIES "-Wl,-Bstatic -lgnutls -lpthread -lzstd -lbrotlienc -lbrotlicommon -lbrotlidec")
      
      # 第184行
      if(WIN32)
          set(STATIC_BASE_LIBRARIES "${STATIC_BASE_LIBRARIES} -lmingw32 -lgcc_eh -lgcc -lmoldname -lmingwex -lmsvcrt -lpthread")
      
    • 执行编译脚本

      其他的编译脚本命令和win32,win64的执行脚本一致,只增加-DBUILD_STATIC=1的参数

      cmake -G "MSYS Makefiles" ../ DBUILD_STATIC=1
      
      make
      

    执行命令

    启动客户端(start_client.sh):

    ....
    $root_dir/vnc/vncviewer $SERVER_IP::SERVER_PORT
    ....
    

    启动服务端(start_server.sh):

    ....
    $root_dir/vnc/x0vncserver --display=$DISPLAY -SecurityTypes=None
    ....
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaobaiPlayGame

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值