Windows下编译打包Spice PC客户端
1 环境搭建
1.1 准备工作
安装启动:
- 安装替换图标工具: Resource Hacker
- 安装exe制作工具: NSIS(提取码:3dfp),在Plugins目录下添加
processwork.dll插件 - 安装编译工具: msys2,在开始菜单中启动
MSYS2 MinGW 64-bit,进入MINGW64环境
注意事项:
- 生成32位应用程序需要在另一个msys2下的
MINGW32环境下进行 - 对于
MinGW 32-bit,将下文中出现的x86_64替换成i686即可 msys2的安装目录(例如D:\msys64)就是根目录- 所有源码需要下载至根目录,再进行编译安装
1.2 更新软件包
pacman -Syu
软件包 (6) bash-4.4.023-1 filesystem-2018.12-1 mintty-1~2.9.5-1
msys2-runtime-2.11.2-1 pacman-5.1.2-2 pacman-mirrors-20180604-2
根据提示,关闭 msys2,从开始菜单栏重新启动,然后再执行一次。
1.3 安装开发工具
pacman -S base-devel --noconfirm
:: 在组 base-devel 中有 56 成员:
:: 软件仓库 msys
1) asciidoc 2) autoconf 3) autoconf2.13 4) autogen 5) automake-wrapper 6) automake1.10 7) automake1.11 8) automake1.12 9) automake1.13 10) automake1.14 11) automake1.15 12) automake1.16 13) automake1.6 14) automake1.7 15) automake1.8 16) automake1.9 17) bison 18) diffstat 19) diffutils 20) dos2unix 21) file 22) flex 23) gawk 24) gdb 25) gettext 26) gettext-devel 27) gperf 28) grep 29) groff 30) help2man 31) intltool 32) lemon 33) libtool 34) libunrar 35) libunrar-devel 36) m4 37) make 38) man-db 39) pacman 40) pactoys-git 41) patch 42) patchutils 43) perl 44) pkg-config 45) pkgfile 46) quilt 47) rcs 48) scons 49) sed 50) swig 51) texinfo 52) texinfo-tex 53) ttyrec 54) unrar 55) wget 56) xmlto
1.4 安装工具链
pacman -S mingw-w64-x86_64-toolchain --noconfirm
:: 在组 mingw-w64-x86_64-toolchain 中有 17 成员:
:: 软件仓库 mingw64
1) mingw-w64-x86_64-binutils 2) mingw-w64-x86_64-crt-git 3) mingw-w64-x86_64-gcc 4) mingw-w64-x86_64-gcc-ada 5) mingw-w64-x86_64-gcc-fortran 6) mingw-w64-x86_64-gcc-libgfortran 7) mingw-w64-x86_64-gcc-libs 8) mingw-w64-x86_64-gcc-objc 9) mingw-w64-x86_64-gdb 10) mingw-w64-x86_64-headers-git 11) mingw-w64-x86_64-libmangle-git 12) mingw-w64-x86_64-libwinpthread-git 13) mingw-w64-x86_64-make 14) mingw-w64-x86_64-pkg-config 15) mingw-w64-x86_64-tools-git 16) mingw-w64-x86_64-winpthreads-git 17) mingw-w64-x86_64-winstorecompat-git
1.5 安装依赖包
pacman -S \
mingw-w64-x86_64-gst-libav \
mingw-w64-x86_64-gst-plugins-bad \
mingw-w64-x86_64-gst-plugins-base \
mingw-w64-x86_64-gst-plugins-good \
mingw-w64-x86_64-gst-plugins-ugly \
mingw-w64-x86_64-gstreamer --noconfirm
pacman -S \
mingw-w64-x86_64-icoutils \
mingw-w64-x86_64-python2-six \
mingw-w64-x86_64-python2-pyparsing --noconfirm
1.6 安装spice-gtk的依赖包
(1)安装spice-gtk 0.35-3及其依赖包
pacman -S mingw-w64-x86_64-spice-gtk --noconfirm
(2)保留依赖包,卸载spice-gtk等
pacman -R mingw-w64-x86_64-spice-gtk \
mingw-w64-x86_64-usbredir \
mingw-w64-x86_64-libusb \
mingw-w64-x86_64-spice-protocol --noconfirm
2 编译客户端
版本说明:
| 组件名称 | 瘦终端版本 | pacman默认 | PC客户端 |
|---|---|---|---|
| spice-protocol | 0.12.13 | 0.12.14-1 | 0.12.13(make install) |
| libusb | 1.0.21 | 1.0.22-1 | 1.0.22(make install) |
| usbredir | 0.7.1 | 0.8.0-1 | 0.8.0(make install) |
| spice-gtk | 0.34 | 0.35-3 | 0.34(make install) |
编译步骤:
- spice-protocol 0.12.23
- libusb 1.0.22
- usbredir 0.8.0
- spice-gtk 0.34
- clouddesktop-client
2.1 编译spice-protocol
(1)下载spice-protocol 0.12.13源码
git clone http://10.142.233.181:8888/ctg-cache/spice-protocol.git
(2)然后make install
cd /spice-protocol && ./configure && make && make install
2.2 编译libusb
(1)下载libusb-1.0.22源码
git clone http://10.142.233.181:8888/zengzhihua/libusb-1.0.22.git
(2)然后make install
cd /libusb-1.0.22 && ./configure && make && make install
2.3 编译usbredir
(1)下载usbredir-0.8.0源码
git clone http://10.142.233.181:8888/zengzhihua/usbredir-0.8.0.git
(2)然后make install(首次编译时必须执行 sh autogen.sh)
cd /usbredir-0.8.0 && sh autogen.sh && ./configure && make && make install
2.4 编译spice-gtk
(1)下载spice-gtk 0.34源码
git clone http://10.142.233.181:8888/zengzhihua/spice-gtk-0.34.git
(2)然后configure
cd /spice-gtk-0.34 && ./configure --disable-werror --enable-vala
成功后出现:
configure:
Spice-Gtk 0.34
==============
prefix: /mingw64
c compiler: gcc
Target: Windows
Gtk: 3.0
Coroutine: winfiber
PulseAudio: no
GStreamer Audio: yes
GStreamer Video: yes
SASL support: yes
Smartcard support: no
USB redirection support: yes
DBus: yes
WebDAV support: yes
LZ4 support: yes
Now type 'make' to build spice-gtk
(3)然后make install
make -j4 && make install
(4)编译完成后执行spicy测试一下
spicy
2.5 编译客户端
(1)下载clouddesktop-client中windows-master分支的源码
git clone -b windows-master http://10.142.233.181:8888/ctg-cache/clouddesktop-client.git clouddesktop-client-windows
(2)然后make install(注:首次编译时必须执行sh autogen.sh,x.x.x 替换成相应的版本号)
cd /clouddesktop-client-windows && sh autogen.sh && \
./configure --prefix=/CtyunDesktop-x64-x.x.x && \
make -j4 && make install
2.6 快速编译
(1)下载源码(可在 Git Bash 执行)
git clone http://10.142.233.181:8888/ctg-cache/spice-protocol.git && \
git clone http://10.142.233.181:8888/zengzhihua/libusb-1.0.22.git && \
git clone http://10.142.233.181:8888/zengzhihua/usbredir-0.8.0.git && \
git clone http://10.142.233.181:8888/zengzhihua/spice-gtk-0.34.git && \
git clone -b windows-master http://10.142.233.181:8888/ctg-cache/clouddesktop-client.git clouddesktop-client-windows
(2)编译脚本(x.x.x 替换成相应的版本号)
cd /spice-protocol && ./configure && make && make install && \
cd /libusb-1.0.22 && ./configure && make && make install && \
cd /usbredir-0.8.0 && sh autogen.sh && ./configure && make && make install && \
cd /spice-gtk-0.34 && ./configure --disable-werror --enable-vala && make -j4 && make install && \
cd /clouddesktop-client-windows && sh autogen.sh && ./configure --prefix=/CtyunDesktop-x64-x.x.x && make -j4 && ./src/remote-viewer.exe --debug
3 打包客户端
3.1 替换应用程序图标
打开Resource Hacker,
(1)Open → 选择 /CtyunDesktop-x64-x.x.x/bin/remote-viewer.exe
(2)Add Binary or Image Resource → 选择 clouddesktop-client-windows/nsis/NSIS-Icon.ico
(3)Save(Ctrl+S)
3.2 修改配置
进入clouddesktop-client-windows/nsis,
(1)修改 MakePackage-x64.bat 中的 dirname(CtyunDesktop-x64-x.x.x)
(2)修改 NSIS-Licence-x64.txt 中的 Software Licence (安装程序的许可说明)
3.3 运行脚本
(1)进入clouddesktop-client-windows/nsis,双击运行 MakePackage-x64.bat脚本,成功后进入CtyunDesktop-x64-x.x.x,文件结构如下:
|-- bin/
|-- lib/
|-- log/
|-- plugin/
|-- share/
|-- cloud-desktop-config.ini
(2)修改 cloud-desktop-config.ini 中的 cloud_urls ,对应不同环境的https接口地址
3.4 打包生成exe
进入clouddesktop-client-windows/nsis,
(1)使用 HM VNISEdit 2.0.3 打开 NSIS-Setup-x64.nsi,
(2)修改版本号: !define PRODUCT_VERSION "x.x.x"
(3)运行脚本:工具栏→NSIS→编译脚本,得到 CtyunDesktop-x64-x.x.x.exe
Windows下编译打包Spice PC客户端的更多相关文章
- 在Windows下编译OpenSSL(VS2005和VC6)
需要说明的是请一定安装openssl-0.9.8a . openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...
- 一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg
一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...
- Windows下编译memcached-1.4.5(32bit和64bit)
1.简介 Memcached 是一个高性能的分布式内存对象缓存系统.它通过将数据缓存在内存中来减少对数据库和文件系统的访问,减轻数据库及操作系统的负担,提高应用系统的速度. 目前已经很多系统应用了me ...
- Windows下编译最新版ChezScheme
据说ChezScheme是最快的神级编译器,一秒钟几百万行,王垠说的2秒内编译自身绝不是夸张(看这里<揭秘Chez Scheme>,Scheme中文社区).ChezScheme由美国印第安 ...
- [转] Windows下编译OpenSSL
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- Windows下编译objective-C
Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode 目录 ...
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
- 如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
- windows下编译java源文件的编码错误
import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...
随机推荐
- QT7有用的尝试总结(1)
1,系统配置 1. 把系统相关的一些目录配置 写到qt.conf文件里,详细情况情参考QSettings里的qt.conf部分 You can use the qt.conf file to over ...
- java web开发遇到的常见问题解决办法(汇总贴)
1. maven下载jar包失败,重复 maven --> update project 不管用 解决办法: 1.打开本地仓库所在目录, 通过win文件夹的搜索功能,查找 *.lastUpda ...
- centos rpm包下载地址
这个是6.5的下载地址,其他版本可以退回目录找相应的版本 http://vault.centos.org/6.5/updates/x86_64/Packages/
- play framework - 初识
背景 研发代码框架是play-framework框架,想看代码的话,需要学习下play框架.IDE工具的话之前一直用的idea,所以本文涉及的idea play的配置 和 一些play的简单知识 认识 ...
- 58VIP账号发贴器
因公司有招聘大量普工需求,需要大量简历资源,直接从58买一份简历动辄几块到几十块,如果做精准少则1块以上的点击.而且收到的简历不太精准,应公司需求写了一款自动发贴器.完全模拟人工发贴,经过一个月的测试 ...
- Winform DataGridView控件在业务逻辑上的简单使用
需要对文字列表进行处理,然后用到DataGridView控件来处理,记录一下.效果如下: 主要是想通过禁用和取消单元格选择来使图标单元格呈现出鼠标点击的效果.因为有个单元格选择的问题困扰着我. 是这样 ...
- MVC框架json数据展示程序(第一版)
模型原型:服务器的配置和运行状态信息. 设计要求:Json格式数据解析后,判断配置信息是否是新数据或者是否更新.如是新数据,则直接添加到数据库:若是数据更新,则更新数据库配置信息并更新运行状态信息:都 ...
- 剑指offer编程题Java实现——面试题7相关题用两个队列实现一个栈
剑指offer面试题7相关题目:用两个队列实现一个栈 解题思路:根据栈的先入后出和队列的先入先出的特点1.在push的时候,把元素向非空的队列内添加2.在pop的时候,把不为空的队列中的size()- ...
- libffi-dev : 依赖: libffi6 (= 3.2.1-4) 但是 3.2.1-4kord 正要被安装
原文链接:https://blog.csdn.net/u013992330/article/details/85135629 中标麒麟安装python库:sshtunnel 的时候提示缺少ffi.h文 ...
- [学习笔记]树套树 线段树套Splay
今天调了一个早上哈哈哈,不过因为\(Splay\),常数比较大 洛谷的评测记录: \(Code\ Below:\) #include <bits/stdc++.h> #define ll ...