Ubuntu 22.4 LTS 源码编译Tigervnc

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

-- make version > 3.10
apt install cmake      -- tigervnc依赖         
apt install zlib1g-dev libpixman-1-dev  libjpeg-turbo8-dev libfltk1.3-devapt install libsystemd-dev libavutil-devapt-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 themachine on which you are building TigerVNC.  The most recent versions ofRed 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/CentOS9 and recent Fedora releases.  You should customize it for your particularsystem.  In particular, it will be necessary to customize the XKBdirectory.)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.mzph.cn/news/884712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scala Map集合

一.Map的概述 Map是一种存储键值对的数据结构&#xff0c;Map中的键都是唯一的。 idea实例 二.Map的常见操作 idea实例 三.Map中的查询元素 idea实例 四.Map的常用方法 idea实例 五.Map的遍历 idea实例

Ubuntu学习笔记 - Day2

文章目录 学习目标&#xff1a;学习内容&#xff1a;学习笔记&#xff1a;Linux系统启动过程内核引导运行init运行级别系统初始化建立终端用户登录系统 Ubuntu关机关机流程相关命令 Linux系统目录结构查看目录目录结构 文件基本属性读写权限命令 下载文件的方法安装wget工具下载…

Rust异步运行时框架tokio保姆级教程

1. 简介 Tokio 是一个用于构建高性能异步应用程序的 Rust 异步运行时框架。它提供了基本的异步 I/O 操作、任务调度、定时器等功能&#xff0c;适合于构建网络服务器、客户端等。 2. 环境准备 在 Cargo.toml 中添加以下内容&#xff1a; [dependencies] tokio { version …

Rust 力扣 - 2841. 几乎唯一子数组的最大和

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们遍历长度为k的窗口&#xff0c;用一个哈希表记录窗口内的所有元素&#xff08;用来对窗口内元素去重&#xff09;&#xff0c;我们取哈希表中元素数量大于等于m的窗口总和的最大值 题解代码 use std::coll…

从 vue 源码看问题 — vue 如何进行异步更新?

前言 在上一篇 如何理解 vue 响应式&#xff1f; 中&#xff0c;了解到响应式其实是通过 Observer 类中调用 defineReactive() 即 Object.defineProperty() 方法为每个目标对象的 key&#xff08;key 对应的 value 为非数组的&#xff09; 设置 getter 和 setter 实现拦截&…

ROS(Robot Operating System)中,编写一个记录机器人速度并将其转换成轨迹

在ROS&#xff08;Robot Operating System&#xff09;中&#xff0c;编写一个记录机器人速度并将其转换成轨迹的类涉及到几个步骤。以下是一个简单的示例&#xff0c;展示了如何创建这样一个类&#xff0c;并将其放置在一个自定义的命名空间中。这个类将订阅机器人的速度信息&…

[NewStarCTF 2023 公开赛道]逃1

代码审计. 这段代码分为三部分&#xff1a;1.war函数&#xff0c;2.GetFlag类&#xff0c;3.GetFlag类对象的定义&#xff0c;waf过滤以及反序列化 . 很经典的的一道题&#xff0c;键值对逃逸&#xff0c;改变cmd的value&#xff0c;去获取flag. 而war就是我们的突破点&#xf…

分享几个可以免费使用AI的网站

1、ChatGPT 自从用上GPT后&#xff0c;我的工作效率直接翻倍啊&#xff0c;不仅任务完成得更快&#xff0c;质量也更高。现在&#xff0c;我有更多的时间来享受生活&#xff0c;工作之余也能愉快地“摸鱼”&#xff0c;嘎嘎香嘞~ ⭐⭐ 点击直达 ​ 还有AI绘画可以体验喔~ 大…

如何抓住重点,系统高效地学习数据结构和算法?

要抓住重点、系统高效地学习数据结构和算法,可以从以下几个方面入手: 一、明确学习目标 确定学习的深度和广度 根据自己的学习需求和职业规划,确定学习数据结构和算法的深度和广度。如果你是为了应对面试,可能需要重点学习常见的数据结构和算法,以及它们的时间复杂度和空…

lego-loam mapOptmization 源码注释(二)

看过了main函数&#xff0c;我们来看mapOptmization的正题&#xff1a; MO.run(); void run(){if (newLaserCloudCornerLast && std::abs(timeLaserCloudCornerLast - timeLaserOdometry) < 0.005 &&newLaserCloudSurfLast && std::abs(time…

【大数据学习 | kafka】producer之拦截器,序列化器与分区器

1. 自定义拦截器 interceptor是拦截器&#xff0c;可以拦截到发送到kafka中的数据进行二次处理&#xff0c;它是producer组成部分的第一个组件。 public static class MyInterceptor implements ProducerInterceptor<String,String>{Overridepublic ProducerRecord<…

基于Spring Boot的高校物品捐赠管理系统设计与实现,LW+源码+讲解

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装高校物品捐赠管理系统软件来发挥其高效地信息处理的作用&a…

推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案

在数字化转型的浪潮中&#xff0c;企业对于数据传输的需求日益增加&#xff0c;特别是在不同网络环境之间的文件共享和传输。为了满足这一需求&#xff0c;FileLink数据跨网摆渡系统应运而生&#xff0c;为企业提供了一种安全、高效的数据传输解决方案。 安全第一&#xff0c;保…

C++_day2

目录 1. 引用 reference&#xff08;重点&#xff09; 1.1 基础使用 1.2 特性 1.3 引用参数 2. C窄化&#xff08;了解&#xff09; 3. 输入&#xff08;熟悉&#xff09; 4. string 字符串类&#xff08;掌握&#xff09; 4.1 基础使用 4.2 取出元素 4.3 字符串与数字转换 5. …

服务器数据恢复—RAID5阵列硬盘坏道掉线导致存储不可用的数据恢复案例

服务器存储数据恢复环境&#xff1a; 一台EqualLogic存储中有一组由16块SAS硬盘组建的RAID5阵列。上层划分了4个卷&#xff0c;采用VMFS文件系统&#xff0c;存放虚拟机文件。 服务器存储故障&#xff1a; 存储RAID5阵列中磁盘出现故障&#xff0c;有2块硬盘对应的指示灯亮黄灯…

25国考照片处理器使用流程图解❗

1、打开“国家公务员局”网站&#xff0c;进入2025公务员专题&#xff0c;找到考生考务入口 2、点击下载地址 3、这几个下载链接都可以 4、下载压缩包 5、解压后先看“使用说明”&#xff0c;再找到“照片处理工具”双击。 6、双击后会进入这样的界面&#xff0c;点击&…

2024年云手机推荐榜单:高性能云手机推荐

无论是手游玩家、APP测试人员&#xff0c;还是数字营销工作者&#xff0c;云手机都为他们带来了极大的便利。本文将为大家推荐几款在市场上表现优异的云手机&#xff0c;希望这篇推荐指南可以帮助大家找到最适合自己的云手机&#xff01; 1. OgPhone云手机 OgPhone云手机是一款…

浅谈RPC的实现原理与RPC实战

浅谈RPC的实现原理与RPC实战 什么是RPC?RPC框架基本原理gRPC框架介绍Http/2ProtoBuf gRPC实战一、创建项目二、导入依赖三、编写proto文件编写服务端编写客户端 什么是RPC? RPC(Remote Procedore Call)&#xff0c;及远程过程调用&#xff0c;是一种在分布式系统中用于进程间…

JeecgBoot入门

最近在了解低代码平台&#xff0c;其中关注到gitee上开源项目JeecgBoot&#xff0c;JeecgBoot官方也有比较完整的入门教学文档&#xff0c;这里我们将耕者官方教程学习&#xff0c;并将其记录下来。 一、项目简介 JeecgBoot 是一款基于代码生成器的低代码开发平台拥有零代码能力…

探索开源语音识别的未来:高效利用先进的自动语音识别技术20241030

&#x1f680; 探索开源语音识别的未来&#xff1a;高效利用自动语音识别技术 &#x1f31f; 引言 在数字化时代&#xff0c;语音识别技术正在引领人机交互的新潮流&#xff0c;为各行业带来了颠覆性的改变。开源的自动语音识别&#xff08;ASR&#xff09;系统&#xff0c;如…