windows
win10下编译 TigerVNC ,32 位 64位编译说明,官网文档其实写的已经明白了,奈何我是小白一个,基本的命令都不会啊。我把编译的坑在此记录一下
1、环境准备 MSYS2 下载地址 https://www.msys2.org/
2、编译64位 的就按照官方的走基本没啥问题
此次重点说明编译32位的和win7的
32位的执行下边命令。我用的是这个打开的 MSYS2 MinGW 32-bit
pacman -S mingw-w64-i686-cmake
pacman -S mingw-w64-i686-fltk
pacman -S mingw-w64-i686-gnutls
pacman -S mingw-w64-i686-gcc
pacman -S mingw-w64-i686-make
pacman -S mingw-w64-i686-pixman
执行完就基本没啥问题了
适配 win7 ,官网上也有说明,但是无奈包官网给的路径没了
32位这个网址下载 Index of /mingw/i686/ (huaweicloud.com)
64位这个网址下载Index of /mingw/x86_64/ (huaweicloud.com)
下载完执行重新执行一遍流程就可以啦
编译文档
Compiling TigerVNC for Windows · TigerVNC/tigervnc Wiki · GitHub
linux
TigerVNC编译安装
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.gzroot@vnc-client:/usr/local/src# ls
fltk-1.3.33) 创建bin目录
root@vnc-client:/usr/local/src# cd fltk-1.3.3/
root@vnc-client:/usr/local/src/fltk-1.3.3# mkdir bin4) 配置
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# make6) 安装
root@vnc-client:/usr/local/src/fltk-1.3.3/bin# make install
三、编译安装TigerVNC-1.6.01) 将下载的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.patch4) 切换至/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 build6) 配置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# make9) 安装
root@vnc-client:/opt/tigervnc-1.6.0/build# make install即可使用/usr/bin/vncviewer。