FreeRDP在windows上的编译和使用

2023-05-16

FreeRDPWindows下远程桌面协议(RDP)的一种实现,类似于微软自带的mstsc,可以实现windows上的远程连接,特别是对于在ubuntu或者在Mac下,需要在局域网下实现到Windows的远程连接,这是一种不错的选择,对于在Windows 下已经有了mstsc,编译FreeRDP 是为了进行代码的学习。

必备软件的安装

1.vs2019

这里假设大家都会安装vistual studio套件了,不会的百度一下,已经有了很多教程,建议大家用2019或者以后的版本。

2.cmake

FreeRDP不仅仅是windows下能用,在linux平台也可以使用,这次我们需要在windows上进行编译,采用cmake,生成vs的工程。

下载最新版的cmake,安装 最新版本,这样后面在生成vs的时候,才能选到最新的编译器。

3.libusb

建议下载 libusb-1.0.24 版本的libusb,打开的目录如下:

在这里插入图片描述

4.openssl

传输数据的通道,采用的是openssl,到官网下载相关版本版本,这里选择的是Win64 v1.1.1版本。

在这里插入图片描述

使用cmake生成VS解决方案

下载最新版本的FreeRDP源码解压放到 目录 D:\work\2022\FreeRDP\FreeRDP-2.7.0
打开cmake,地址配置如下:

在这里插入图片描述
点击configure按钮生成配置文件。

在这里插入图片描述
如果出现了如下的错误:

 error MSB6003: 指定的任务可执行文件“cmd.exe”未能运行。System.IO.IOException: 未能创建临时文件。临时文件文件夹已满或其路径不正确。

那是因为我们启动CMake的时候没有用管理员权限。重启以管理员权限打开cmake 编译,

在这里插入图片描述
有两个配置我们还需要配置一下,把 libusb-1.0.24拷贝到项目下,配置LIBUSB_1_LIBRARY,LIBUSB_1_INCLUDE_DIR 到对应的目录下,

LIBUSB_1_INCLUDE_DIR    D:\work\2022\FreeRDP\FreeRDP-2.7.0\libusb-1.0.24\include\libusb-1.0

LIBUSB_1_LIBRARY        D:\work\2022\FreeRDP\FreeRDP-2.7.0\libusb-1.0.24\VS2019\MS64\dll

继续编译,出现Configuring done ,接着继续generate按钮,生成工程项目。
build目录下已经生成了如下的工程文件,用vs打开。
在这里插入图片描述

用vs编译FreeRDP解决方案

vs打开 FreeRDP.sln解决方案,稍微配置一下就可以使用。

点击Open Project打开解决方案 修改freerdp-client项目属性 在属性->链接器->输入->附加的依赖项中增加 D:\work\2022\FreeRDP\FreeRDP-2.7.0\libusb-1.0.24\VS2019\MS64\dll\libusb-1.0.lib

不知道是什么问题,libusb-1.0.lib 并没有出现在lib中需要自己配置,不然会出现连接错误。

29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_init,函数 libusb_freerdp_urbdrc_client_subsystem_entry 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_exit,函数 udevman_free 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_has_capability,函数 poll_thread 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_strerror,函数 libusb_freerdp_urbdrc_client_subsystem_entry 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_get_device_descriptor,函数 hotplug_callback 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2001: 无法解析的外部符号 libusb_get_device_descriptor
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_get_active_config_descriptor,函数 device_is_filtered 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2001: 无法解析的外部符号 libusb_get_active_config_descriptor
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_free_config_descriptor,函数 device_is_filtered 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_get_bus_number,函数 hotplug_callback 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2001: 无法解析的外部符号 libusb_get_bus_number
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_get_device_address,函数 hotplug_callback 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2001: 无法解析的外部符号 libusb_get_device_address
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_try_lock_events,函数 poll_libusb_events 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_unlock_events,函数 poll_libusb_events 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_event_handling_ok,函数 poll_libusb_events 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_event_handler_active,函数 poll_libusb_events 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_lock_event_waiters,函数 poll_libusb_events 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_unlock_event_waiters,函数 poll_libusb_events 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_wait_for_event,函数 poll_libusb_events 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_handle_events_locked,函数 poll_libusb_events 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_hotplug_register_callback,函数 poll_thread 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_hotplug_deregister_callback,函数 poll_thread 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevman.obj) : error LNK2019: 无法解析的外部符号 libusb_set_option,函数 libusb_freerdp_urbdrc_client_subsystem_entry 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2019: 无法解析的外部符号 libusb_error_name,函数 log_libusb_result 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2019: 无法解析的外部符号 libusb_get_device_list,函数 udev_new_by_id 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2019: 无法解析的外部符号 libusb_free_device_list,函数 udev_new_by_id 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2019: 无法解析的外部符号 libusb_unref_device,函数 udev_new_by_id 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2019: 无法解析的外部符号 libusb_get_config_descriptor,函数 udev_init 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2019: 无法解析的外部符号 libusb_get_port_number,函数 udev_init 中引用了该符号
29>urbdrc-client-libusb.lib(libusb_udevice.obj) : error LNK2019: 无法解析的外部符号 libusb_get_port_numbers,函数 udev_get_device_handle 中引用了该符号
。。。

wfreerdp-client设为启动项,进行编译,生成wfreerdp.exe
在这里插入图片描述
在进行调试之前,把libusb-1.0.dll 拷贝过去,配置运行参数:

在这里插入图片描述
勇敢的跑起来吧。

在这里插入图片描述

出现了让你输入远程账号和密码的界面,输入进行远程连接。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FreeRDP在windows上的编译和使用 的相关文章

随机推荐

  • 菜鸟笔记---startx执行后显示Only console users are allowed to run the X server

    输入startx amp 后报错信息 span class token operator span usr span class token operator span lib span class token operator span
  • 【supervisor】安装和使用,超级详细,开机自启动,以及其它的注意细节

    1 安装supervisor yum pip的方式都可以 yum y install supervisor 已加载插件 xff1a fastestmirror Loading mirror speeds from cached hostfi
  • poj1664-放苹果

    放苹果 把N个同样的苹果放在M个同样的盘子里 xff0c 允许有的盘子空着不放 xff0c 问共有多少种不同的分法 xff1f xff08 用K表示 xff09 5 xff0c 1 xff0c 1和1 xff0c 5 xff0c 1 是同一
  • VS报错——无法打开文件XXX.lib

    添加lib文件 xff1a 配置属性 gt 链接器 gt 输入 gt 附加依赖项加入库名 xff08 lib xff09 xff1b 或者是在cpp源文件中用 pragma comment lib lib 来代替 此时编译会提示 xff1a
  • Kafka与Flink结合使用

    Kafka与Flink结合使用 本地连接kafka 首先可以先以本地模式来对kafka进行操作 当我们在系统 xff08 可以是windows xff0c 尽量linux xff09 上部署好了Zookeeper和kafka集群 xff0c
  • 当前脑电入门

    资料 1 公众号脑机接口社区汇总 2 MNE 3 EEG科普 4 公众号BrainTechnology 5 公众号路同学 6 知乎Alex 7 程序员大本营 xff0c 很多相关 数据集 上海交大SEED数据集 BCI EEG数据集 xff
  • 使用Diskspd测试SQL Server存储子系统

    In this article we will learn how to test our storage subsystems performance using Diskspd The storage subsystem is one
  • Python读取mat文件——matlab的数据

    Python处理mat文件 1 读取2 数据格式 1 读取 很多人使用MATLAB并将数据存储在 mat文件中 这些文件是什么 这些文件包含MATLAB工作空间分配给它们的变量和对象列表 它作为字典导入到Python中 xff0c 其中键是
  • 我的毕设4.24—

    EEG 1 寻找数据2 读入数据3 了解数据3 处理数据 1 寻找数据 要找到关于情感的EEG数据集 by CSDN 2 读入数据 因为获取的数据集是mat文件 xff0c 解决Python读取mat文件 by 文本检索图书馆w pytho
  • 关于提高信息传输率三个方法之一——增加频带宽度

    转载原作 以下解释为什么增加频带宽度可减弱码间串扰 主要由于高频信号分量对波形影响是变得接近数字信号 xff0c 分界垂直 xff0c 减小斜坡 信道极限容量 任何实际的信道都不是理想的 xff0c 在传输信号时会产生各种失真以及带来多种干
  • CSMA/CD计算机网络(第七版)谢希仁 3-25 CSMA/CD

    计算机网络 xff08 第七版 xff09 谢希仁 3 25 假定站点A和B在同一个10Mb s以太网网段上 这两个站点之间的传播时延为225比特时间 站点A和B在t 61 0时同时发送了数据帧 当t 61 225比特时间 xff0c A和
  • L3-019 代码排版 (30 分) 别看 没改完

    太复杂了啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 不做了 include lt iostream gt include lt cstdio gt using namespace std string s bo
  • 无人机航线规划

    非最短非最长 xff0c 因为只有10个点 xff0c 直接搜 标题 xff1a 无人机航线规划 某海岛遭遇飓风灾害 xff0c 道路设施受损严重 救援部门为尽快探明主要交通干道的受损情况 xff0c 在地图上划定了主要交通干道的侦察点 x
  • 17蓝桥C语言B组 7.日期问题

    标题 xff1a 日期问题 小明正在整理一批历史文献 这些历史文献中出现了很多日期 小明知道这些日期都在1960年1月1日至2059年12月31日 令小明头疼的是 xff0c 这些日期采用的格式非常不统一 xff0c 有采用年 月 日的 x
  • 安装Scipy。。。。。。。。

    放弃pip转用conda戳 2019 4 21 安装Scipy 以下所有安装过程假设电脑中安装有pip xff0c 如果没有就请装一个 首先 xff0c windows正常通过pip命令安装numpy和scipy的时候 xff1a pip
  • 《Python编程:从入门到实践》文件资料下载

    感谢分享者 下载地址 往下翻 下载压缩包
  • 01、BUCK电路的参数计算

    案例 xff1a 设计一个Buck电路 xff0c 满足如下性能指标要求 xff1a 一 性能指标要求 1 输入电压 2 输出电压 3 输出电压纹波 4 电流纹波 5 开关频率 二 需要计算的参数 三 BUCK电路拓扑 四 BUCK电路工作
  • mysql分页是物理分页_学习MySQL:什么是分页

    mysql分页是物理分页 In this article I am going to explain that in MySQL what is pagination and how we can implement it When we
  • Ubuntu下嵌入式arm板Qt环境搭建

    参考 xff1a https blog csdn net lpp0900320123 article details 24876159 系统环境 xff1a 主机操作系统 xff1a ubuntu14 04 主机编译器 xff1a gcc4
  • FreeRDP在windows上的编译和使用

    FreeRDP 是 Windows下远程桌面协议 xff08 RDP xff09 的一种实现 xff0c 类似于微软自带的mstsc xff0c 可以实现windows上的远程连接 xff0c 特别是对于在ubuntu或者在Mac下 xff