news 2026/9/17 13:52:46

ubuntu编译安装FreeRDP Version 3.x.x 版本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ubuntu编译安装FreeRDP Version 3.x.x 版本

一次性把依赖装齐

sudoaptinstall-y\build-essentialgitcmake ninja-build pkg-config\libssl-dev libx11-dev libxext-dev libxinerama-dev\libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev\libasound2-dev libcups2-dev libpulse-dev libjpeg-dev\libusb-1.0-0-dev libudev-dev libdbus-1-dev\libwayland-dev libpam0g-dev libkrb5-dev libfuse3-dev\libxkbcommon-dev wayland-protocols libwayland-dev

拉取 3.19.1 源码(也可换其他 3.x tag)

gitclone -b3.19.1 https://github.com/FreeRDP/FreeRDP.gitcdFreeRDP

配置 + 编译

mkdirbuild&&cdbuild cmake -DCMAKE_BUILD_TYPE=Release\-DWITH_CHANNELS=ON\-DWITH_SERVER=ON\-DWITH_X11=ON\-DWITH_WAYLAND=ON\..make-j$(nproc)sudomakeinstallsudoldconfig# 让系统找到新 so

cmake时,如果提示还缺少依赖,使用sudo apt install -y安装对应的依赖即可,然后重新cmake

验证

xfreerdp --version# 输出 3.19.1(或你选的 tag)

编译过程中的错误处理

执行make -j$(nproc)时,报undefined reference to xf_use_rel_mouse错误,说明 编译器找到了声明,但链接器找不到定义 —— 即某个源文件没有被编译进最终的可执行文件。
1、找到调用点(一般在 client/X11/xf_event.c)

cd..grep-n"xf_use_rel_mouse"client/X11/xf_event.c

输出如下:

491:if(xfc->xi_event||xfc->xi_rawevent||(xfc->common.mouse_grabbed&&xf_use_rel_mouse(xfc)))604:if(xfc->xi_event||xfc->xi_rawevent||(xfc->common.mouse_grabbed&&xf_use_rel_mouse(xfc)))617:if(xfc->xi_event||xfc->xi_rawevent||(xfc->common.mouse_grabbed&&xf_use_rel_mouse(xfc)))

源码里 3 处直接调用 xf_use_rel_mouse() 作为逻辑判断,而 开关 -DWITH_X11_RELATIVE_MOUSE=OFF 只控制函数“是否编译”,却没把调用点包起来,于是链接时找不到定义。
需要把 491、604、617 行的判断改成 宏包裹(让开关真正生效)

if(xfc->xi_event||xfc->xi_rawevent||(xfc->common.mouse_grabbed&&xf_use_rel_mouse(xfc)))

三处都改成

if(xfc->xi_event||xfc->xi_rawevent||(xfc->common.mouse_grabbed&&#ifdefWITH_X11_RELATIVE_MOUSExf_use_rel_mouse(xfc)#elseFALSE#endif))

下面一条 sed 命令把 3 处调用全部包进宏,原地备份(.bak):

sed-i.bak\'s/(xfc->common.mouse_grabbed && xf_use_rel_mouse(xfc))/\ (xfc->common.mouse_grabbed \&\& \ #ifdef WITH_X11_RELATIVE_MOUSE\n\ xf_use_rel_mouse(xfc)\n\ #else\n\ FALSE\n\ #endif\n\ )/g'\client/X11/xf_event.c

做完就编译

cdbuildmake-j$(nproc)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 8:32:34

7步精通SillyTavern版本升级:从零基础到专业运维的全流程指南

7步精通SillyTavern版本升级:从零基础到专业运维的全流程指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 还在为AI对话前端的版本更新而困扰吗?担心升级过程中角…

作者头像 李华
网站建设 2026/9/16 13:10:45

LobeChat能否支持LaTeX公式渲染?学术场景适用性测试

LobeChat能否支持LaTeX公式渲染?学术场景适用性测试 在高校实验室里,一个研究生正试图用AI助手推导量子力学中的波函数归一化条件。他输入问题后,模型返回了一串漂亮的LaTeX代码——但屏幕上显示的却是乱码般的原始符号:$$\int_{-…

作者头像 李华
网站建设 2026/9/15 11:22:32

BT6.0常见的BUG

蓝牙6.0作为新一代规范,本身定义了更先进、更安全的功能。通常所说的“Bug”并非来自协议本身,而主要源于芯片实现、软件驱动或第三方集成方案中的问题。以下是开发中需要关注的几个主要方面。问题类型具体表现 / 内容 影响与注意事项新特性带来的开发挑…

作者头像 李华
网站建设 2026/9/17 1:08:50

ThinkPad风扇终极静音方案:TPFanCtrl2智能控制完全指南

还在被ThinkPad笔记本的"飞机起飞"般的风扇噪音困扰吗?无论是深夜加班时的持续嗡鸣,还是重要会议中的突然加速,这些噪音问题都会严重影响工作效率和使用体验。TPFanCtrl2作为专为Windows 10/11设计的智能风扇控制工具,通…

作者头像 李华
网站建设 2026/9/16 22:27:46

GMV推进卫星导航技术助力自动驾驶运输与物流发展

据称这是加强英国和欧洲下一代定位、导航和授时(PNT)能力的重要进步,技术企业集团GMV获得了开发Beacon的合同,这是一个先进的波束成形天线和接收器系统,旨在增强来自低地球轨道卫星的C波段无线电导航信号的弹性。该合同…

作者头像 李华
网站建设 2026/9/16 15:58:34

树|regex正则

lc2047可以三解,复习了:模拟 状态机 正则正则istringstream处理这才是真正的代码😭正则表达式 (([a-z]-)?[a-z])?[!,.]? 的结构和匹配逻辑是:- 核心部分 ([a-z]-)?[a-z] :匹配“纯小写字母”(如 abc )或…

作者头像 李华