RDP:远程桌面协议(Remote Desktop Protocol),是一个多通道的协议,可以让客户端或称 “本地电脑” 连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)
一、准备:
1.环境:VMware 虚拟机,Ubuntu 64位镜像
关于下载 VMware 虚拟机和在 VMware 虚拟机中安装 Ubuntu,可查看 「Linux 环境下使用 OpenCV 显示图片」中下载虚拟机、下载镜像文件、安装虚拟机这三块内容
2.打开虚拟机,切换目录到某个目录(可以指定自己的目录,这里使用 usr 下的 local),下载的软件都放在这个目录下
3.切换到 root 用户(省得下面执行命令时各种提示没权限)
sudo su// 提示输入密码,然后回车
二、安装 cmake
1.创建目录 cmake(用于存放稍后下载的 cmake)
mkdir cmake
2.进入目录 cmake
cd cmake
3.下载 cmake
wget /files/v3.3/cmake-3.3.2.tar.gz
4.解压
tar -zxvf cmake-3.3.2.tar.gz
5.进入解压目录
cd cmake-3.3.2
6.安装 g++
apt install g++
7.依次执行
./configure./bootstrapmakemake install
三、安装 Android SDK
1.切换到目录 /usr/local
cd /usr/local
2.创建目录 sdk(用于存放稍后下载的 sdk),然后进入目录 sdk
mkdir sdk && cd sdk
3.下载
wget /android/android-sdk_r24.4.1-linux.tgz
4.解压
tar -zxvf android-sdk_r24.4.1-linux.tgz
5.配置临时环境变量
// 除了使用 vim 或 vi 命令,Ubuntu 中可以使用 gedit 命令进行编辑gedit /etc/profile
在打开的文件的末尾,增加如下内容
export ANDROID_SDK=/usr/local/sdk/android-sdk-linuxexport PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$PATH
6.使环境变量配置生效
source /etc/profile
四、安装 Android NDK
1.切换到目录 /usr/local
cd /usr/local
2.创建目录 ndk(用于存放稍后下载的 ndk),进入目录 ndk
mkdir ndk && cd ndk
3.下载
wget /android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2
4.解压
tar -jxvf android-ndk-r9d-linux-x86_64.tar.bz2
5.配置环境变量
gedit /etc/profile
在打开的文件的末尾,增加如下内容
export ANDROID_NDK=/usr/local/ndk/android-ndk-r9dexport PATH=$PATH:$ANDROID_NDK
6.使环境变量配置生效
source /etc/profile
五、下载 Android-external-openssl-ndk-static
1.切换到目录 /usr/local
cd /usr/local
2.创建目录 openssl-ndk(用于存放稍后下载的 android-external-openssl-ndk-static),进入目录 openssl-ndk
mkdir openssl-ndk && cd openssl-ndk
3.安装 git
apt install git
4.下载 Android-external-openssl-ndk-static
git clone /bmiklautz/android-external-openssl-ndk-static.git
5.进入 android-external-openssl-ndk-static 目录
cd android-external-openssl-ndk-static
6.编译
ndk-build
命令执行完成后,如果在当前目录下生成 libs 文件夹,说明编译完成
六、编译 freeRDP
1.切换到目录 /usr/local
cd /usr/local
2.创建目录 ndk(用于存放稍后下载的 FreeRDP),进入目录 freeRDP
mkdir freeRDP && cd freeRDP
3.下载 FreeRDP 的 stable-1.1 版本
git clone -b stable-1.1 /FreeRDP/FreeRDP.git
4.进入 FreeRDP 根目录
cd FreeRDP
5.使用 cmake 生成 makefile 脚本文件
cmake -DCMAKE_TOOLCHAIN_FILE=cmake/AndroidToolchain.cmake -DCMAKE_BUILD_TYPE=Debug -DPKG_CONFIG_EXECUTABLE="/usr/local/pkgconfig/bin" -DANDROID_NDK="/usr/local/ndk/android-ndk-r9d" -DFREERDP_ANDROID_EXTERNAL_SSL_PATH="/usr/local/openssl-ndk/android-external-openssl-ndk-static" -DANDROID_BUILD_JAVA=OFF
命令执行完成后,很可能会有报错,提示缺少 winptr/nt.h 文件,请查看下面的 「cmake 命令报错解决」部分,如果没报错,则执行下一步
6.编译 makefile 脚本文件
make
cmake 命令报错解决
1.下载 stable-1.1 分支
// -b:下载指定分支git clone -b stable-1.1 /FreeRDP/FreeRDP.git
2.获取历史版本的 SHA 值
方式一:查看历史版本
git log --pretty=oneline
方式二:github 查看更新记录
最新一次更新之前的提交版本对应的 SHA 值为 851f0979d5b0b45a7595cab7ab1dd2d41d4a73d1
3.恢复到指定历史版本
git reset --hard 851f0979d5b0b45a7595cab7ab1dd2d41d4a73d1
4.使用 cmake 生成 makefile 文件
cmake -DCMAKE_TOOLCHAIN_FILE=cmake/AndroidToolchain.cmake -DCMAKE_BUILD_TYPE=Debug -DPKG_CONFIG_EXECUTABLE="/usr/local/pkgconfig/bin" -DANDROID_NDK="/usr/local/ndk/android-ndk-r9d" -DFREERDP_ANDROID_EXTERNAL_SSL_PATH="/usr/local/openssl-ndk/android-external-openssl-ndk-static" -DANDROID_BUILD_JAVA=OFF
5.使用 make 编译 makefile 生成库文件
make
命令执行完成后,如下图所示,则表示编译库文件成功
此时,就可以把这个 .so 文件拿到 Android 项目中使用了