tigervnc 编译
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 编译的更多相关文章
- TigerVNC编译安装
TigerVNC official site:http://www.linuxfromscratch.org/blfs/view/svn/xsoft/tigervnc.html TigerVNC版本: ...
- 用windows远程连接linux桌面(使用tightvnc或者tigervnc)
一.安装tightvnc: tightvnc的安装在安装包中有详细的说明(README文件) 首先你要确保linux已经安装jpeg和zlib库, 2.编译 执行如下两个命令: [root@local ...
- windows远程连接linux桌面---使用tightvnc或者tigervnc
一.安装tightvnc: tightvnc的安装在安装包中有详细的说明(README文件) 首先你要确保linux已经安装jpeg和zlib库, 2.编译 执行如下两个命令: [root@local ...
- 内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境(mobaxterm、tigervnc、nfs、node)
内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境 背景 内网开发机是 win7,只能安装 node 14 以下,而 spug 的文档项目采用的是 Facebook ...
- TODO:macOS编译PHP7.1
TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...
- Centos6.5下编译安装mysql 5.6
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...
- CENTOS 6.5 平台离线编译安装 PHP5.6.6
一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...
- CENTOS 6.5 平台离线编译安装 Mysql5.6.22
一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...
- Android注解使用之注解编译android-apt如何切换到annotationProcessor
前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...
随机推荐
- 怎样学好 java ?
浅谈Java的学习之路--怎样学好JAVA ?Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如"屠龙刀"."倚天剑". Java ...
- 习题3-3 数数字(Digit Counting , ACM/ICPC Danang 2007, UVa1225)
#include<stdio.h> #include<string.h> int main() { char s[100]; scanf("%s",s); ...
- JAVA Schedule的Cron表达式
spring中用到的定时任务,一般用到的有Timer()和Schedule Cron表达式一般是程序的定时任务中所要起的..我们用的springboot中的@Schedule中,启动类中添加enabl ...
- linux mount挂载命令
[root@localhost src]# mount 查询系统中已经挂载的设备 [root@localhost src]# mount -a 依据配置文件 /etc/fstab的内容,自动挂载
- centos8平台使用blkid查看分区信息
一,blkid的用途 blkid 命令是一个命令行工具,它可以显示关于可用块设备的信息 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/archite ...
- selenium-远程调用
1.拉去镜像: docker pull selenium/hub docker pull baozhida/selenium-node-chrome-debug:58 docker pull baoz ...
- Linux文件系统和管理-2文件操作命令(下)
移动和重命名文件 mv 命令可以实现文件或目录的移动和改名 剪切的效果 同一分区移动数据,速度很快:数据位置没有变化 不同分区移动数据,速度相对慢:数据位置发生了变化 格式 和cp基本一样 mv [O ...
- git永久保存账号密码,免去git重复输入账号密码操作
这是我刚刚遇到的问题,每次操git操作都要输入用户名和密码,网上百度了下搜到了方法解决了 方法一:(快捷简单) 直接在git bash 中执行命令:git config --global creden ...
- 3. Distributional Reinforcement Learning with Quantile Regression
C51算法理论上用Wasserstein度量衡量两个累积分布函数间的距离证明了价值分布的可行性,但在实际算法中用KL散度对离散支持的概率进行拟合,不能作用于累积分布函数,不能保证Bellman更新收敛 ...
- webmagic源码浅析
webmagic简介 webmagic可以说是中国传播度最广的Java爬虫框架,https://github.com/code4craft/webmagic,阅读相关源码,获益良多.阅读作者博客[代码 ...