FreeRDP 2.0 for Windows 编译

简介

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上下文;

  1. 解压源代码文件夹,启动cmake-gui;
  2. 设置源代码路径,
  3. 设置输出文件路径,一般我选择在源代码路径上一级建立一个build文件夹来保存编译产物;
  4. 点击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文件;

    • 最后的编译中出现了链接问题:无法解析的外部符号 __imp___vsnprintf,老套路,在 vs工程选项,链接器附加依赖项里面添加 legacy_stdio_definitions.lib 即可,其他问题参考这篇博客文章
    • 使用静态链接的libusb.lib需要增加如下代码解决ioc找不到的问题,参考资料
//项目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

EOF

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值