简介

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

FreeRDP 2.0 for Windows 编译相关推荐

  1. protobuf-3.0 win环境编译

    protobuf-3.0.0-beta-2 windows编译 x64/x86 V3.0.0 beta2以及之后都是CMake 创建VS Solution,project.

  2. Windows编译FreeRDP

    Windows编译FreeRDP 需要准备的工具 1.安装CMake (cmake-gui) 2.安装`Visual Studio Community 2017` 3.下载`FreeRDP`源码 4. ...

  3. Windows编译Tensorflow2.2.0 C++ dll (CPU bazel)

    Windows编译Tensorflow2.2.0 C++ dll (CPU bazel) 0.建议预先下载的几个包 1.VS2019, anaconda, bazel, msys2 下载.安装.路径设 ...

  4. OGRE 2.1 Windows 编译

    版权所有,转载请注明链接 OGRE 2.1 Windows 编译 环境: Windows 7 64Bit Visual Studio 2012 OGRE 2.1 CMake 2.8.12.1 OGRE ...

  5. ambari 2.5.0源码编译安装

    参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...

  6. WIN10 x64搭建OLLVM4.0 android NDK 编译环境跨坑指南

    本文参考大量相关博客,甄选出有用的文章,帮助大家远离陷阱,节省时间. 目录 平台说明 环境准备 添加String混淆 集成到ndk编译工具链 模式介绍与使用方法 编译错误 Cannot open /d ...

  7. VC2008下使用OpenSSL 1.0.0g(免编译)

    摘要: 运行时库附加依赖项多线程(/MT)libeay32MT.lib ssleay32MT.lib多线程调试(/MTd)libeay32MTd.lib ssleay32... id="cp ...

  8. PB8 0应用程序编译发布技术研究

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 摘要:本 ...

  9. PB8.0应用程序编译发布技术研究

     执行文件的建立 1.编译格式的选择 PowerBuilder 8.0对生成可执行文件提供了两种编译格式:伪代码(Pcode,即pseudocode的缩写)和机器代码(Machinecode).伪 ...

最新文章

  1. java的connect和http_java发起HttpURLConnection和HttpsURLConnection请求 | 学步园
  2. vs2017python找不到包_关于Python在VS2017版中编译C源代码出现的各种问题解决方法...
  3. 【bzoj3669】[Noi2014]魔法森林【LCT】
  4. python画柱状图-Python:Matplotlib 画曲线和柱状图(Code)
  5. Python代码 52周存钱计划
  6. Python中的timezone
  7. 全面向新能源转型 透过柠檬混动DHT了解长城汽车森林式生态体系
  8. 国家各个政府机构网站
  9. Windows基础篇学习(上)
  10. 医院管理系统(Java+SSM+MySQL开发的医院科室管理系统)
  11. 2021年全球住宅电梯收入大约1534.2百万美元,预计2028年达到1957.3百万美元
  12. 回答薛定谔问题: 生命是什么?自由能公式
  13. 用模拟退火算法求解TSP问题
  14. 【方案分享】2021AMII品牌女装抖音直播间运营方案.pptx
  15. stm8s103k3 周期 捕获_STM8S做输入捕获
  16. bigdecimal 平均数_云函数 · – Bmob后端云
  17. 计算机房空调设计要求,计算机机房空调设计规范
  18. 前端 - Underscore.js
  19. jav101上不去_去101
  20. java web 在线客服_WebSocket实现客服聊天系统实例详解

热门文章

  1. html页面插件 复制,ReadabilityCopy - 一键复制网页内容插件
  2. Java培训机构出来好找工作吗?
  3. 模电学习笔记(十一)——微分电路
  4. studio 热重载应用_热重载 (Hot reload)
  5. 模拟cmos集成电路(7)
  6. 电脑直连开发板 (备忘)
  7. 学习Protobuf,ZigZag是啥你真的知道么?
  8. Web开发之常用框架BootStrap
  9. 虚岁与周岁的本质区别,是时间与人的不同关系
  10. 读书笔记 高效能人士的执行4原则