Ubuntu 22.4 LTS 源码编译Tigervnc

news/2024/11/5 2:06:35 标签: ubuntu, 服务器, linux

1、安装前的依赖软件准备

-- make version > 3.10
apt install cmake      

-- tigervnc依赖         
apt install zlib1g-dev libpixman-1-dev  libjpeg-turbo8-dev libfltk1.3-dev

apt install libsystemd-dev libavutil-dev

apt-get install gettext  libffmpeg-ocaml-dev libgmp-dev libnettle-dev  libgnutls28-dev libxi-dev

-- Xorg xserver使用
apt install xutils-dev 

以上依赖在cmake中都有检查,不存在会提示。

2、Xorg Xserver

软件仓地址:

Files · server-1.20-branch · xorg / xserver · GitLab

tigervnc 1.14的官方指导安装文档是基于  server-1.20-branch的,在这个版本以上的高版本都不存在configure.ac

3、安装tigervnc的官方指导构建

Building the TigerVNC Server (Xvnc) is a bit trickier. Xvnc is typically built
to use the X11 shared libraries provided with the system.  The procedure for
this is system-specific, since it requires specifying such things as font
directories, but the general outline is as follows (this procedure assumes
that the viewer has already been built, per above.)

  > cd {build_directory}

    If performing an out-of-tree build:
  > cp -R {source_directory}/unix/xserver unix/

  > cp -R {xorg_source}/* unix/xserver/
    (NOTE: {xorg_source} is the directory containing the Xorg source for the
    machine on which you are building TigerVNC.  The most recent versions of
    Red Hat/CentOS/Fedora, for instance, provide an RPM called
    "xorg-x11-server-source", which installs the Xorg source under
    /usr/share/xorg-x11-server-source.)

  > cd unix/xserver/
  > patch -p1 < {source_directory}/unix/xserver{version}.patch
    (where {version} matches the X server version you are building, such as
    "120" for version 1.20.x.)
  > autoreconf -fiv

  > ./configure --with-pic --without-dtrace --disable-static --disable-dri \
      --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg \
      --disable-dmx --disable-xwin --disable-xephyr --disable-kdrive \
      --disable-config-hal --disable-config-udev --disable-dri2 --enable-glx \
      --with-default-font-path="catalogue:/etc/X11/fontpath.d,built-ins" \
      --with-xkb-path=/usr/share/X11/xkb \
      --with-xkb-output=/var/lib/xkb \
      --with-xkb-bin-directory=/usr/bin \
      --with-serverconfig-path=/usr/lib64/xorg \
      {additional configure options}
    (NOTE: This is merely an example that works with Red Hat Enterprise/CentOS
    9 and recent Fedora releases.  You should customize it for your particular
    system.  In particular, it will be necessary to customize the XKB
    directory.)

    For a regular, in-tree build:
  > make TIGERVNC_SRCDIR={source_directory}
    If performing an out-of-tree build:
  > make TIGERVNC_SRCDIR={source_directory} TIGERVNC_BUILDDIR={build_directory}
    (NOTE: Use absolute paths for source_directory and build_directory)

值得一提的是,前几步是在构建xserver,直到make TIGERVNC_SRCDIR={source_directory}才是构建tigervnc。

该操作指导,是一个in-tree和out-of-tree是指xserver。xserver的构建是放在tigervnc源码的unix/xserver中构建,还是使用单独的目录构建,上文中的{build_directory}就是用用来存在xserver的代码,和tigervnc对xserver的扩展。

如果使用in-tree方式构建,直接将xserver源码copy到tigervnc的源码的unix/xserver目录中。

如果使用out-of-tree方式构建,则新建文件夹{build_directory},并创建Unix目录,将xserver源码copy到Unix目录中,将tigervnc对xserver的扩展hw也copy到Unix下。此种方式,在构建tigervnc时,需要在make命令中指定tigervnc的源码目录和新建的{build_directory}。

4、将构建后的二进制打包

在tigervnc源码目录中,执行make tarball,可将构建的所有文件打到一个tar包中。

5、不包含xserver的构建

在构建时,如果直接在tigervnc中执行构建,只能构建x0vncserver,xvnc不能得到构建,因为其依赖xserver,xvnc是tigervnc的核心。正如其介绍:

Xvnc - the TigerVNC Server for Unix. Xvnc is both a VNC server and an X

      server with a "virtual" framebuffer. You should normally use the vncserver service to start Xvnc.

x0vncserver - an inefficient VNC server which continuously polls any X

      display, allowing it to be controlled via VNC. It is intended mainly as a demonstration of a simple VNC server.


http://www.niftyadmin.cn/n/5738796.html

相关文章

phcharm贪吃蛇小游戏后续一(代码1,2,3前文已发)

代码4 上篇博文中实现方块在网格线中移动&#xff0c;但我们发现方块并没有刚好在网格线边缘移动&#xff08;会在线上&#xff09;&#xff0c;同时方块如果比作蛇头的话&#xff0c;一般老的贪吃蛇游戏只会90度转弯&#xff0c;此前的代码左右或上下相当于180度&#xff0c;…

‘ssh-keygen‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。(详细版2024)

目录 1 问题2 解决办法2.1 查看后台服务2.2 下载缺少的服务2.3 配置环境变量2.4 重启服务2.5 检测是否成功 3 后记 1 问题 想远程连接服务器的时候&#xff0c;在cmd端执行 ssh-keygon&#xff0c;报错 ‘ssh-keygon’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处…

YOLOv10的网络架构解析

引言 在计算机视觉领域&#xff0c;目标检测一直是研究热点之一。YOLO&#xff08;You Only Look Once&#xff09;系列模型因其高效的性能和端到端的检测能力而备受关注。2024年5月25日&#xff0c;由清华多媒体智能组开发的YOLOv10正式发布&#xff0c;这一版本在模型架构、…

详解:枚举类

枚举类&#xff08;Enum&#xff09;是一种特殊的类&#xff0c;用于定义一组固定的常量。在Java中&#xff0c;枚举类使用enum关键字来定义。 特点&#xff1a; 枚举类的每个实例都是唯一的&#xff0c;且在编译时确定。 枚举类的实例可以直接通过类名访问&#xff0c;不需要…

Apache 配置出错常见问题及解决方法

Apache 配置出错常见问题及解决方法 一、端口被占用问题 问题描述:在启动 Apache 时,出现“Address already in use”或类似的错误提示,这意味着 Apache 想要使用的端口已经被其他程序占用,导致 Apache 无法正常启动。原因分析: 系统中已经有其他的应用程序在使用 Apache…

LeetCode 0633.平方数之和:模拟

【LetMeFly】633.平方数之和&#xff1a;模拟 力扣题目链接&#xff1a;https://leetcode.cn/problems/sum-of-square-numbers/ 给定一个非负整数 c &#xff0c;你要判断是否存在两个整数 a 和 b&#xff0c;使得 a2 b2 c 。 示例 1&#xff1a; 输入&#xff1a;c 5 输…

银行金融知识竞赛活动策划方案

根据《中国人民银行**市中心支行“创新金融服务&#xff0c;支持经济发展”业务竟赛活动实施方案》安排&#xff0c;中支决定于9月28日举办**市人民银行系统“创新金融服务&#xff0c;支持经济发展”现场业务竞赛&#xff0c;为确保业务竞赛组织工作顺利开展&#xff0c;特制定…

基于STM32的工厂短距离安防巡逻机器人设计:ZIgBee、OpenCV、人工智能(AI)算法(代码示例)

一、项目概述 随着工业化的迅速发展&#xff0c;工厂的安全管理显得尤为重要。为了提高工厂的安全性&#xff0c;我们设计了一款基于STM32的安防巡逻机器人。该机器人能够在工厂内部自主巡逻&#xff0c;实时监控环境&#xff0c;并通过多种传感器和智能算法进行异常检测和处理…