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上下文;
- 解压源代码文件夹,启动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文件;- 最后的编译中出现了链接问题:
无法解析的外部符号 __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 编译相关推荐
- protobuf-3.0 win环境编译
protobuf-3.0.0-beta-2 windows编译 x64/x86 V3.0.0 beta2以及之后都是CMake 创建VS Solution,project.
- Windows编译FreeRDP
Windows编译FreeRDP 需要准备的工具 1.安装CMake (cmake-gui) 2.安装`Visual Studio Community 2017` 3.下载`FreeRDP`源码 4. ...
- Windows编译Tensorflow2.2.0 C++ dll (CPU bazel)
Windows编译Tensorflow2.2.0 C++ dll (CPU bazel) 0.建议预先下载的几个包 1.VS2019, anaconda, bazel, msys2 下载.安装.路径设 ...
- OGRE 2.1 Windows 编译
版权所有,转载请注明链接 OGRE 2.1 Windows 编译 环境: Windows 7 64Bit Visual Studio 2012 OGRE 2.1 CMake 2.8.12.1 OGRE ...
- ambari 2.5.0源码编译安装
参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...
- WIN10 x64搭建OLLVM4.0 android NDK 编译环境跨坑指南
本文参考大量相关博客,甄选出有用的文章,帮助大家远离陷阱,节省时间. 目录 平台说明 环境准备 添加String混淆 集成到ndk编译工具链 模式介绍与使用方法 编译错误 Cannot open /d ...
- VC2008下使用OpenSSL 1.0.0g(免编译)
摘要: 运行时库附加依赖项多线程(/MT)libeay32MT.lib ssleay32MT.lib多线程调试(/MTd)libeay32MTd.lib ssleay32... id="cp ...
- PB8 0应用程序编译发布技术研究
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 摘要:本 ...
- PB8.0应用程序编译发布技术研究
执行文件的建立 1.编译格式的选择 PowerBuilder 8.0对生成可执行文件提供了两种编译格式:伪代码(Pcode,即pseudocode的缩写)和机器代码(Machinecode).伪 ...
最新文章
- java的connect和http_java发起HttpURLConnection和HttpsURLConnection请求 | 学步园
- vs2017python找不到包_关于Python在VS2017版中编译C源代码出现的各种问题解决方法...
- 【bzoj3669】[Noi2014]魔法森林【LCT】
- python画柱状图-Python:Matplotlib 画曲线和柱状图(Code)
- Python代码 52周存钱计划
- Python中的timezone
- 全面向新能源转型 透过柠檬混动DHT了解长城汽车森林式生态体系
- 国家各个政府机构网站
- Windows基础篇学习(上)
- 医院管理系统(Java+SSM+MySQL开发的医院科室管理系统)
- 2021年全球住宅电梯收入大约1534.2百万美元,预计2028年达到1957.3百万美元
- 回答薛定谔问题: 生命是什么?自由能公式
- 用模拟退火算法求解TSP问题
- 【方案分享】2021AMII品牌女装抖音直播间运营方案.pptx
- stm8s103k3 周期 捕获_STM8S做输入捕获
- bigdecimal 平均数_云函数 · – Bmob后端云
- 计算机房空调设计要求,计算机机房空调设计规范
- 前端 - Underscore.js
- jav101上不去_去101
- java web 在线客服_WebSocket实现客服聊天系统实例详解