简介
Freerdp
一个开源的RDP跨平台客户端;
https://github.com/FreeRDP/FreeRDP
版本
2020-04-09 Github上其发布了2.0版本;
只下载其release版本的源代码包;
编译Windows
使用Cmake-gui进行编译前的准备,
主要流程参考Wiki,部分操作参考前人笔记;
问题解决如这个网友的日志;
使用x64 Native Tools Command Prompt for VS 2017
命令行启动Cmake,避免cmake找不到环境变量,下面部分操作也可能用到一个单独环境的cmd上下文;
- 解压源代码文件夹,启动cmake-gui;
- 设置源代码路径,
- 设置输出文件路径,一般我选择在源代码路径上一级建立一个build文件夹来保存编译产物;
- 点击configure,等待错误:bowtie:;
Openssl没有找到;
LIBUSB_LIBRARY LIBUSB_LIB两个变量没有设置;
2.0版本需要手动处理的组件有这两个:
-
Openssl for windows:从这里下载全量版本Win64 OpenSSL v1.1.1g安装,cmake会自动寻找目标库路径;
-
发布时需要两个dll文件;
-
libusb: 从官网
Download->Latest Windows Binaries
得到windows编译包,使用dll版本的lib,在cmake里的变量里设置好绝对路径,GUI中设置一下Entry的值为文件路径;
编译时需要在vs2019/2017的链接器配置中填入需要链接的lib文件;
//项目freerdp-client.vcxproj,随便找个c文件插入代码
FILE* __cdecl _iob(void)
{
FILE iob[] = { *stdin, *stdout, *stderr };
return iob;
}
- 使用动态链接的lib在发布时需要带上libusb的dll;
点击configure确认配置可用,没有error后,最后点击Generate
生成项目文件sln;
双击打开solution文件,看到熟悉的IDE;
libfreeRDP
freeRDP的lib支持可编程二次开发,
调研阶段发现下面几个项目:
- FreeRDP-Sharp: https://github.com/FreeRDP/FreeRDP-Sharp/issues/1
- NodeJs binding: https://github.com/bloomapi/node-freerdp