基础开发路线
-
先用树莓派验证交叉编译可行性,或者直接利用树莓派开发项目
-
树莓派运算速度不足时考虑一下方案
-
采用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文件,稍作修改即可.