RK3588+linux系统下交叉编译开发记录
基础开发路线
-
先用树莓派验证交叉编译可行性,或者直接利用树莓派开发项目
-
树莓派运算速度不足时考虑一下方案
-
采用windows环境下vscode加cmake实现交叉编译,将可执行文件直接考入RK3588自带的debian系统运行
-
采用套接字通信,可直接用linux下的网络库
-
开发记录
24/12/27
Tips
-
注意在网线连接实现双击或多机通信时,要保证每台机器相应的网络防护关闭,确保连接不被防火墙之类的机制所拦截。
-
每台机器或有多个网口网卡,注意相连接的硬件网口同软件设置中或PING中指定的IP相对应,避免ping错
-
socket程序需要稍微修改头文件包含以及函数API如下
// #include <winsock.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> // #include <netinet.h> -
同时修改函数名称
closesocket为close即可 -
在vscode上进行remote开发时,已经注册好了
tdgc-1a@192.168.1.103为远程服务器地址,直接使用即可 -
快捷键
ctrl+k和ctrl+o实现打开服务器端文件夹 -
实际编译时采用的时服务器端的
aarch64-linux-gnu-gcc进行编译链接,用的是树莓派的资源
阶段
- 完成了在树莓派上部署socket服务端实现同Windows电脑客户端的回显通信
24/12/28
Tips
-
打开vc终端,执行
cmake edit对cmake-tools-kits.json文件进行修改,添加需要的编译工具链,这里我使用的网上大佬给的案例中的.cmake文件,添加后的效果如下{ "name":"gcc-7.5-aarch64-linux-gnu", "toolchainFile":"D:/TDGC/RasbarryPi/crossBuild/arm.cmake" } -
同时,针对大佬给的.cmake文件中部分路径进行修改,如下
include(CMakeForceCompiler) set(tools D:/TDGC/RasbarryPi/crossBuild/gcc-7.5/bin) SET(CMAKE_CXX_COMPILER ${tools}/aarch64-linux-gnu-g++.exe) SET(CMAKE_C_COMPILER ${tools}/aarch64-linux-gnu-gcc.exe) SET(CMAKE_FIND_ROOT_PATH D:/TDGC/RasbarryPi/crossBuild/gcc-7.5/aarch64-linux-gnu/libc) -
直接拷贝到linux系统中的可执行文件(win上交叉编译到linux平台的二进制文件)在终端中显示为白色而非绿色,说明此时该文件不具备可执行权限,需要在该文件同级路径下在终端中执行
chmod +x 那个文件的名字来赋予它可执行权限,(注:chmod即change mode) -
当提示
无法确定要使用的cmake生成器时,应ctrl+shift+p并输入settings.json并在该脚本文件中按前面的项相同的形式添加"cmake.generator":"MinGW Makefiles"来指定cmake的构建工具 -
cmakelist文件可通过
ctrl+shif+p键入cmake获取快速开始,可以只保留其list文件,稍作修改即可.
在这里附上我参考的大佬博客文章https://www.cnblogs.com/Clark-Zhang/p/16303434.html
浙公网安备 33010602011771号