100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Ubuntu 18.0.4 FreeRDP编译环境搭建

Ubuntu 18.0.4 FreeRDP编译环境搭建

时间:2018-12-03 00:57:24

相关推荐

Ubuntu 18.0.4 FreeRDP编译环境搭建

Ubuntu 18.0.4 FreeRDP编译环境搭建

前言系统环境介绍具体步骤

前言

最近需要对RDP进行裁剪,首先就需要搭建RDP的编译环境,于是就使用了Git Hub上的FreeRDP开源项目,在实际的编译源码的过程中,遇到了非常多的问题,故在这里记录一下这一过程。

系统环境介绍

我在Ubuntu 18.0.4CentOS 8上都完成了这一环境搭建,这里以Ubuntu 18.0.4为例。我们首先需要确保我们的Ubuntu是可以联网的,因为在后面的编译过程中需要用到非常多的依赖库,如果离线安装的话会非常麻烦且不一定能安装成功。

同时预先安装一下gmakeUbuntu系统上已经取消了gmake,使用make来代替,所以我们只需要对make进行软链接就可以了,具体命令如下:

cd /usr/bin

sudo ln -s make gmake

具体步骤

进入到/usr/local目录下,执行下述命令下载FreeRDP开源项目,命令如下

git clone git:///FreeRDP/FreeRDP.git

如果出现下载失败的情况,则根据出错原因在网络上都可以查找出相关的解决方案。

接下来就需要安装依赖库了,在FreeRDP上给出了我们需要安装的依赖库,但是其中有一些库是已经过期了的,我整理了一下,如下所示:

sudo apt-get install ninja-build build-essential git-core debhelper cdbs dpkg-dev autotools-dev cmake pkg-config xmlto libssl-dev docbook-xsl xsltproc libxkbfile-dev libx11-dev libwayland-dev libxrandr-dev libxi-dev libxrender-dev libxext-dev libxinerama-dev libxfixes-dev libxcursor-dev libxv-dev libxdamage-dev libxtst-dev libcups2-dev libpcsclite-dev libasound2-dev libpulse-dev libjpeg-dev libgsm1-dev libusb-1.0-0-dev libudev-dev libdbus-glib-1-dev uuid-dev libxml2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libfaad-dev libfaac-dev libcunit1-dev libdirectfb-dev xmlto doxygen libxtst-dev

若下载过程中出现问题,大部分原因都是url不稳定导致的,网络有相关的解决方案。当依赖库安装完成后,进入到FreeRDP项目下,执行cmake命令,若期间没有报错则继续执行makemake install命令:

cd FreeRDP

sudo cmake .

sudo make

sudo make install

此时就会在usr/local/bin目录下生成xfreerdp可执行文件,这时生成的xfreerdp是一个功能非常完善的程序,但是其中的一些功能我并不需要,为了精简,需要对其进行裁剪。

进入到client/Sample目录下,执行cmake命令生成Makefile

cd client/Sample

sudo cmake .

报了如下错误:

/p/f9f20fc91c86 解决了这个问题。

成功生成Makefile时,依次执行:

sudo make

sudo make install

当执行sudo make时,出现了如下错误:

这是没有找到winpr这个目录导致的,这个目录在/usr/local/include目录下,执行命令:cd /usr/local/include,会看到下面两个文件夹:

我们需要的是winpr并不是winpr3,注意winpr3并不是winpr,所以不能用改名字的方法来解决,winpr在哪里呢?就在winpr3目录下,我们只需要将其拷贝到include下就可以了,具体操作如下图所示:

然后再进入到刚开始的Sample目录下,执行make命令,

又报了这样的错误,错误原因和上个问题一样,不知道在include目录下你看到freerdp3这个目录下没有呢。

再次执行make命令,又出现了如下错误

cannot find -lfreerdp-client,找到不libfreerdp.so这个库文件(去掉l加上lib,末尾加上.so就是本身库的名字,在usr/local/lib目录下有一个libfreerdp3.so文件,

我们将其拷贝一下并命名为libfreerdp.so,命令如下:

sudo cp libfreerdp3.so libfreerdp.so

同时也把libfreerdp-client3.so拷贝并命名一下,命令如下:

sudo cp libfreerdp-client3.so libfreerdp-client.so

再次回到Sample目录下,执行make命令,会报如下错误:

提示找不到libwinpr3.so.3这个库,但是在usr/local/lib这个目录下是有这个库文件的,说明链接时并没有找到这个库文件,当时也琢磨了很长时间,最后仔细看了CMakeList.txt文件的内容终于找到了解决方案(注意不要去看Makefile,因为Makefile是用cmake生成的,cmake是根据CMakeList.txt文件完成编译的),解决方法如下:

(1)vi打开CMakeList.txt文件

(2) 找到下图的位置

winpr3加上去,最后如下图所示:

保存并退出。

再次执行sudo make命令,会发现可以生成最终的可执行文件了:

此时FreeRDP的编译环境就完全搭建完成了,CentOS 8的搭建步骤与此类似,以供参考。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。