1.根据BUILDING.txt安装依赖(建议使用默认路径)

其中X11 development kit使用

yum install libX11* 

2.修改CMakeList.txt

在前面添加

set(FLTK_BASE_LIBRARY "/usr/local/lib/libfltk.so")
set(FLTK_IMAGES_LIBRARY "/usr/local/lib/libfltk_images.so")
set(FLTK_INCLUDE_DIR "/usr/local/include/")

3.生成目标

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -Wno-dev
make
sudo make install

编译时可能会出现符号链接的问题,建议将依赖生成为动态链接文件。

如果使用64位环境编译,可能某些依赖库会只生成了32位链接库文件,所以会出现符号找不到的情况。

我使用 tigervnc-1.6.0版本编译通过,建议使用该版本,不同版本具体情况可能不同。

4.运行

我的server端只用到了x0vncserver

由于编译时没有添加TLS,所以服务端开启为:

x0vncserver SecurityTypes=None PasswordFile=/home/yang/.vnc/passwd

如果没有添加

SecurityTypes=None

客户端链接时,回报错:

gnutls_set_priority_direct failed

---------------------------------------------------------------------------------------------------------------------------------------

Xvnc编译

准备包:

xorg-server-1.7.4.tar.gz
tigervnc-1.6.0.tar.gz

相关依赖

bigreqsproto-1.1.2.tar.bz2  kbproto-1.0.7.tar.bz2      randrproto-1.5.0.tar.bz2      xextproto-7.3.0.tar.bz2
compositeproto-0.4.tar.bz2 libfontenc-1.1.4.tar.bz2 renderproto-0.11.tar.bz2 xproto-7.0.31.tar.bz2
damageproto-1.2.1.tar.bz2 libpciaccess-0.16.tar.bz2 resourceproto-1.2.0.tar.bz2 xtrans-1.4.0.tar.bz2
fixesproto-5.0.tar.bz2 libXau-1.0.9.tar.bz2 scrnsaverproto-1.2.2.tar.bz2
fontsproto-2.1.3.tar.bz2 libXfont-1.5.4.tar.bz2 videoproto-2.3.3.tar.bz2
inputproto-2.3.tar.bz2 libxkbfile-1.1.0.tar.bz2 xcmiscproto-1.2.2.tar.bz2    util-macros-1.3.0.tar.bz2

(1)安装依赖

BUILDDIR=$(pwd)
for package in $(ls ./tar)
do
packagedir=$(echo ${package} | sed s/.tar.bz2//)
tar xf ./tar/${package} -C ./lib
cd ./lib/${packagedir}
./configure --prefix=/usr
make
sudo make install
cd ${BUILDDIR}
done

(2)合并代码,并打补丁

cd ${tigervnc-source}/unix/xserver
cp ${xorg-server-source}/* ./ -R
patch -p1 < ../xserver17.patch

其中 xserver.patch 的版本是通过查看 本地的Xorg版本确定,使用下面命令查看Xorg版本

Xorg -version

(3)配置,编译

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-dbus --disable-config-hal \
--disable-dri2 --enable-install-libxf86config --enable-glx \
--with-default-font-path="catalogue:/etc/X11/fontpath.d,built-ins" \
--with-fontdir=/usr/share/X11/fonts \
--with-xkb-path=/usr/share/X11/xkb \
--with-xkb-output=/var/lib/xkb \
--with-xkb-bin-directory=/usr/bin \
--with-serverconfig-path=/usr/lib/xorg \
--with-dri-driver-path=/usr/lib/dri \
--prefix=/usr
make

出现错误

(1)

vncModule.c: 在函数‘vncModuleInit’中:
vncModule.c:94: 错误:只允许在 C99 模式下使用‘for’循环初始化声明

解决

make CFLAGS+=-std=c99

(2)

vncHooks.c: 在函数‘vncHooksCopyArea’中:
vncHooks.c:1123: 错误:‘else’之前没有‘if’

解决


./hw/vnc/vncHooks.c +1123
if ((w == 0) || (h == 0))
REGION_NULL(pGC->pScreen, &dst);
修改为
if ((w == 0) || (h == 0))
{ \
(&dst)->extents = miEmptyBox; \
(&dst)->data = &miEmptyData; \
}

(3)

Input.c: 在函数‘vncPointerButtonAction’中:
Input.c:135: 警告:隐式声明函数‘enqueueEvents’
Input.c: 在文件层:
Input.c:197: 警告:与‘enqueueEvents’类型冲突
Input.c:198: 错误:对‘enqueueEvents’的静态声明出现在非静态声明之后
Input.c:135: 附注:‘enqueueEvents’的上一个隐式声明在此

解决

./hw/vnc/Input.c
前面声明
#if XORG < 111
static void enqueueEvents(DeviceIntPtr dev, int n);
#endif

tigervnc 编译的更多相关文章

  1. TigerVNC编译安装

    TigerVNC official site:http://www.linuxfromscratch.org/blfs/view/svn/xsoft/tigervnc.html TigerVNC版本: ...

  2. 用windows远程连接linux桌面(使用tightvnc或者tigervnc)

    一.安装tightvnc: tightvnc的安装在安装包中有详细的说明(README文件) 首先你要确保linux已经安装jpeg和zlib库, 2.编译 执行如下两个命令: [root@local ...

  3. windows远程连接linux桌面---使用tightvnc或者tigervnc

    一.安装tightvnc: tightvnc的安装在安装包中有详细的说明(README文件) 首先你要确保linux已经安装jpeg和zlib库, 2.编译 执行如下两个命令: [root@local ...

  4. 内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境(mobaxterm、tigervnc、nfs、node)

    内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境 背景 内网开发机是 win7,只能安装 node 14 以下,而 spug 的文档项目采用的是 Facebook ...

  5. TODO:macOS编译PHP7.1

    TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...

  6. Centos6.5下编译安装mysql 5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  7. CENTOS 6.5 平台离线编译安装 PHP5.6.6

    一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...

  8. CENTOS 6.5 平台离线编译安装 Mysql5.6.22

    一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...

  9. Android注解使用之注解编译android-apt如何切换到annotationProcessor

    前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...

随机推荐

  1. 盐城5138.6118(薇)xiaojie:盐城哪里有xiaomei

    盐城哪里有小姐服务大保健[微信:5138.6118倩儿小妹[盐城叫小姐服务√o服务微信:5138.6118倩儿小妹[盐城叫小姐服务][十微信:5138.6118倩儿小妹][盐城叫小姐包夜服务][十微信 ...

  2. MeteoInfoLab脚本示例:计算不同区域平均值

    这里用美国做例子,有一个美国区域的格点温度场数据(usgrid.data),需要计算出每个州(state)的平均温度.当然需要有一个包含各州行政区域的shape文件了(相关文件可以在此帖中下载:htt ...

  3. day19 Pyhton学习 递归函数

    # 函数的递归 : 在一个函数的内部调用它自己 # import sys # sys.setrecursionlimit(1000000) # 设置递归的最大深度 # 总结 # 1.递归函数的定义 : ...

  4. .net c#后台请求接口

    我们在请求接口的时候,有时因为跨域的问题,总是请求接口失败,亦或是请求接口时,页面还存在跳转的问题,这个时候,我们通过前台ajax请求自己的一般处理程序,用一般处理程序请求客户提供的接口 //获取to ...

  5. 扫描仪扫描文件处理-ABBYY对扫描版PDF文字加黑加粗、去除背景漂白

    1. 设置ABBYY自动歪斜矫正: 2. 设置导出PDF参数: 3. PDF文字加黑加粗.去除背景漂白步骤:3.1 ABBYY - 打开扫描版PDF文档3.2 ABBYY - 编辑图像3.3 等级 - ...

  6. linux时间校准 设置时间为上海时区

      [root@localhost log]# rm -f /etc/localtime [root@localhost log]# cp /usr/share/zoneinfo/Asia/Shang ...

  7. linux(centos8):用fallocate快速生成大文件

    一,fallocate的用途? 1,用途 我们有时需要用大文件来测试下载速度, 有时需要用大文件来覆盖磁盘空间, 如果在网上搜索,很多文章讲的是使用dd等工具, 事实上linux系统已经内置了生成大文 ...

  8. STM32芯片型号的命名规则

    意法半导体已经推出STM32基本型系列.增强型系列.USB基本型系列.增强型系列:新系列产品沿用增强型系列的72MHz处理频率.内存包括64KB到256KB闪存和20KB到64KB嵌入式SRAM.新系 ...

  9. 《Connecting the Dots: A Knowledgeable Path Generator for Commonsense Question Answering》一文的理解和总结

    构建常识问答知识路径生成器 论文贡献 ​ 提出学习一个多跳知识路径产生器来根据问题动态产生结构化证据.生成器以预先训练的语言模型为主干,利用语言模型中存储的大量非结构化知识来补充知识库的不完整性.路径 ...

  10. Google Cayley图数据库使用方法

    最近在用Golang做流程引擎,对于流程图的存储,我看到了Google的Cayley图数据库,感觉它可能会比较适合我的应用,于是便拿来用了用. 项目地址在这里:https://github.com/g ...