环境
本文基于虚拟机ubuntu20.04以及RDK X3来进行交叉编译的环境搭建以及demo展示
交叉编译环境的搭建
交叉编译开发环境的搭建参考RDK用户手册
但是根据某大佬的帖子好像gcc-9.3.0在交叉编译QT时会报错,帖子里有另外一个编译工具的链接,各位看官自行点击获取。本文采用的编译工具链为gcc-9.3.0。
执行demo程序
在执行demo之前,先在虚拟机中运行下列命令,安装nfs网络文件系统
sudo apt install nfs-kernel-server
sudo apt install nfs-common
sudo vim /etc/exports
最后一行添加
/ *(rw,sync,ni_root_squash)
重启服务生效
sudo service nfs-kernel-server restart
配网
配置ubuntu和RDK x3在同一网段上
-
网线连接
若RDK x3和主机通过网线连接,相关配置参考:
有线网络配置 -
无线连接
- 将主机和RDK X3连接至同一wifi
- 虚拟机和主机连接的相关配置如下
确保二者能够相互ping通
挂载ubuntu到RDK x3中
在RDK x3的终端下运行(我进入的是root账户)
mount -t nfs -o nolock 192.168.1.37:/home/xxx /mnt
其中将192.168.1.37更换为自己ubuntu的ip地址,后面的路径也是自己的路径,我挂载的是demo程序所在的文件夹
挂载之后可以查看一下挂载的文件夹
在ubuntu上安装vscode,然后安装C/C++,CMake,Cmake Tools插件,然后下载demo,demo的下载地址,该连接同样来自大佬的链接
对demo的操作
首先在文件夹中找到build文件夹,然后删除CMakeCache.txt文件,如果采用的不是gcc-9.3.0的工具链,则需要打开cmake-tools-kits.json添加以下内容:
{
"name":"gcc-linaro-6.5.0",
"compilers":{
"CXX": "/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++",
"C": "/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc"
}
}
cmake-tools-kits.json的路径在/home/username/.local/share/CMakeTools/cmake-tools-kits.json
若使用的是gcc-9.3.0则不用修改
然后编译main.cpp文件可生成result可执行文件,显然该文件在虚拟机上不可运行,可通过
file result
查看程序类型
由于前面我们已经把ubuntu的目录挂载到了RDK X3中,因此在RDK x3中找到对应的目录进入build文件夹,运行
./result
结果如下:
END
参考连接
搞了很久的交叉编译终于搞完了,算是从0到0.5了吧,如果不是那当我没说