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

TigerVNC版本:1.6.0

一、Prerequisites

*******************************************************************************
** Building TigerVNC
*******************************************************************************

================================
Build Requirements (All Systems)
================================

-- CMake (http://www.cmake.org) v2.8 or later

-- zlib

-- FLTK 1.3.3 or later

-- If building TLS support:
* GnuTLS 3.x
* See "Building TLS Support" below.

-- If building native language support (NLS):
* Gnu gettext 0.14.4 or later
* See "Building Native Language Support" below.

-- libjpeg-turbo
* "Normal" libjpegv6 is also supported, although it is not
recommended as it is much slower.

=========================

※备注:可通过tigervnc源码中BUILDING.txt查看到以上内容,表明TigerVNC依赖FLTK库。

二、编译安装FLTK-1.3.3

1) 将下载的fltk-1.3.3-source.tar.gz放到/usr/local/src目录下
2) 切换至/usr/local/src目录,解压fltk-1.3.3-source.tar.gz
root@vnc-client:/usr/local/src# tar -xvf fltk-1.3.3-source.tar.gz

root@vnc-client:/usr/local/src# ls
fltk-1.3.3

3) 创建bin目录
root@vnc-client:/usr/local/src# cd fltk-1.3.3/
root@vnc-client:/usr/local/src/fltk-1.3.3# mkdir bin

4) 配置

root@vnc-client:/usr/local/src/fltk-1.3.3# cd bin
root@vnc-client:/usr/local/src/fltk-1.3.3/bin# cmake ..

5) 编译
root@vnc-client:/usr/local/src/fltk-1.3.3/bin# make

6) 安装
root@vnc-client:/usr/local/src/fltk-1.3.3/bin# make install

三、编译安装TigerVNC-1.6.0

1) 将下载的tigervnc-1.6.0.tar.gz放到/opt目录下
2) 将下载的tigervnc-1.6.0-gethomedir-1.patch和tigervnc-1.6.0-xorg118-1.patch 放到/opt目录下
3) 打补丁
root@vnc-client:/opt# patch -Np1 -i tigervnc-1.6.0-xorg118-1.patch
root@vnc-client:/opt# patch -Np1 -i tigervnc-1.6.0-gethomedir-1.patch

4) 切换至/opt目录,解压tigervnc-1.6.0.tar.gz
root@vnc-client:/opt# tar -xvf tigervnc-1.6.0.tar.gz
root@vnc-client:/opt# cd tigervnc-1.6.0/

5) 创建build目录
root@vnc-client:/opt/tigervnc-1.6.0# mkdir -vp build

6) 配置FLTK_BASE_LIBRARY、FLTK_IMAGES_LIBRARY及FLTK_INCLUDE_DIR变量

通过修改/opt/tigervnc-1.6.0/CMakeLists.txt配置
a) 找到fltk库的全路径
root@vnc-client:/opt/tigervnc-1.6.0# find / -type f -name libfltk.a
/opt/fltk/lib/libfltk.a
/opt/fltk-1.3.3/lib/libfltk.a
/usr/local/lib/libfltk.a
/usr/local/src/fltk-1.3.3/bin/lib/libfltk.a
/usr/lib/libfltk.a
root@vnc-client:/usr/local/lib# ls
fltk libfltk_forms.a libfltk_images.a
libfltk.a libfltk_gl.a
b) 修改CMakeLists.txt
root@vnc-client:/opt/tigervnc-1.6.0# vi /opt/tigervnc-1.6.0/CMakeLists.txt
增加如下内容
------------------
set(FLTK_BASE_LIBRARY "/usr/local/lib/libfltk.a")
set(FLTK_IMAGES_LIBRARY "/usr/local/lib/libfltk_images.a")
set(FLTK_INCLUDE_DIR "/usr/local/include/")
------------------
※备注:此步骤很关键,如果不配置变量,cmake配置时会报出warning,在make阶段报出错误
------------------
Linking CXX executable vncviewer
................................
collect2: error: ld returned 1 exit status
vncviewer/CMakeFiles/vncviewer.dir/build.make:404: recipe for target 'vncviewer/vncviewer' failed
make[2]: *** [vncviewer/vncviewer] Error 1
CMakeFiles/Makefile2:775: recipe for target 'vncviewer/CMakeFiles/vncviewer.dir/all' failed
make[1]: *** [vncviewer/CMakeFiles/vncviewer.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
------------------
7) 配置
root@vnc-client:/opt/tigervnc-1.6.0/build# cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -Wno-dev ..

8) 编译
root@vnc-client:/opt/tigervnc-1.6.0/build# make

9) 安装
root@vnc-client:/opt/tigervnc-1.6.0/build# make install

即可使用/usr/bin/vncviewer。

TigerVNC编译安装的更多相关文章

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

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

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

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

  3. Linux下编译安装Vim8.0

    什么是Vim? Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本.它增加了许多功能,包括:多级撤销.格式高亮.命令行历史.在线帮助.拼写检查.文件名补完.块操作.脚本支持,等等.除了字符界面版 ...

  4. OpenSUSE下编译安装OpenFoam

    在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...

  5. 不要着急改代码,先想想--centos 6.8下编译安装tmux

    诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...

  6. protobuf的编译安装

    github地址:https://github.com/google/protobuf支持多种语言,有多个语言的版本,本文采用的是在centos7下编译源码进行安装. github上有详细的安装说明: ...

  7. 编译安装mysql

    参考:http://www.centoscn.com/CentosServer/www/2015/0422/5245.html 安装mysql5.6.17 1.按照标准需要给mysql创建所属用户和用 ...

  8. 编译安装zabbix3.2

    1.1 环境准备 系统环境准备:redhat 6.6 64位mysql-5.6.34php-5.6.28zabbix-3.2.1配置前先关闭iptables和SELINUX,避免安装过程中报错. # ...

  9. centos系统编译安装nginx+php环境另加独立mysql教程

    以前看过的安装nginx+php环境都带了mysql数据库了,这个是因为很多站长都是nginx+php+mysql都在同一台服务器了,那么今天我们是单独处理了,一个是nginx+php环境,然后mys ...

随机推荐

  1. FPGA 竞争与冒险

    一,概念 在数字电路设计时,无论是组合.时序,还是FPGA电路中,都需要考虑竞争冒险现象(Race and Competition). 竞争:由于信号在传输和处理过程中经过不同的逻辑门.触发器或逻辑单 ...

  2. h5的video标签支持的视频格式

    关于<video>标签所支持的视频格式和编码: MP4 = MPEG 4文件使用 H264 视频编解码器和AAC音频编解码器 WebM = WebM 文件使用 VP8 视频编解码器和 Vo ...

  3. 基于TCP协议 I/O多路转接(select) 的高性能回显服务器客户端模型

    服务端代码: myselect.c #include <stdio.h> #include <netinet/in.h> #include <arpa/inet.h> ...

  4. 使用jQuery+css实现选项卡切换功能

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  5. CPU 和 Linux 进程

    进程与线程 进程应该是Linux中最重要的一个概念.进程运行在CPU上,是所有硬件资源分配的对象.Linux中用一个task_struct的结构来描述进程,描述了进程的各种信息.属性.资源. Linu ...

  6. 机器学习:调整kNN的超参数

    一.评测标准 模型的测评标准:分类的准确度(accuracy): 预测准确度 = 预测成功的样本个数/预测数据集样本总数: 二.超参数 超参数:运行机器学习算法前需要指定的参数: kNN算法中的超参数 ...

  7. MongoDB 3.4 高可用集群搭建(二)replica set 副本集

    转自:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<MongoDB 3.4 高可用集群搭建(一):主从模式&g ...

  8. Java-API:javax.servlet.http.HttpServletRequest

    ylbtech-Java-API:javax.servlet.http.HttpServletRequest 1.返回顶部 1. javax.servlet.http Interface HttpSe ...

  9. 重新认识synchronized(上)

    synchronized在JDK5之前一直被称为重量级锁,是一个较为鸡肋的设计,而在JDK6对synchronized内在机制进行了大量显著的优化,加入了CAS,轻量级锁和偏向锁的功能,性能上已经跟R ...

  10. js利用数组实现队列与堆栈效果

    之前在写Android的时候,会用到很多的队列与堆栈方式,其实js利用数组可以简单的实现类似的效果. 队列实现 var queue = new Array(); // unshift() 方法可向数组 ...