首页 > 系统相关 >RK3588+linux系统下交叉编译开发记录

RK3588+linux系统下交叉编译开发记录

时间:2025-01-18 20:32:50浏览次数:1  
标签:文件 树莓 cmake RK3588 编译 linux include

基础开发路线

  • 先用树莓派验证交叉编译可行性,或者直接利用树莓派开发项目

  • 树莓派运算速度不足时考虑一下方案

    • 采用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>
    
  • 同时修改函数名称closesocketclose即可

  • 在vscode上进行remote开发时,已经注册好了tdgc-1a@192.168.1.103为远程服务器地址,直接使用即可

  • 快捷键ctrl+kctrl+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文件,稍作修改即可.

标签:文件,树莓,cmake,RK3588,编译,linux,include
From: https://www.cnblogs.com/banmaxx/p/18678814

相关文章

  • Linux搭建Slurm和pbs单机版
    SlurmSlurm是高性能计算集群的出色工作调度工具。此外,当你需要同时运行多个程序并将它们排成队列,同时确保计算机或服务器不超载时,它也是本地台式机或单台服务器上的重要工具。此外,在与其他用户共享服务器或需要通宵或连续数周运行多个工作时,它也非常有用!在这里,我将向你展示如何......
  • Python 常见的编译器和解释器
    一、CPython特点:CPython 是 Python 的官方实现,也是最广泛使用的版本。它是用 C 语言实现的,将 Python 源代码编译为字节码,并在 Python 虚拟机(PVM)上运行。它遵循 Python 的官方语言规范,具有完整的标准库和大量的扩展库支持。当你从 Python 官方网站下载 Python......
  • Python 编译器和解释器的区别
    一、工作原理编译器:编译器将 Python 源代码一次性翻译成机器代码或中间代码(如 Python 的字节码)。这个过程通常包括词法分析、语法分析、语义分析、代码优化和目标代码生成等阶段。对于 Python 来说,像 CPython 会将源代码编译为 .pyc 字节码文件,这些字节码是一种......
  • 【Linux探索学习】第二十六弹——进程通信:深入理解Linux中的进程通信
    Linux探索学习:https://blog.csdn.net/2301_80220607/category_12805278.html?spm=1001.2014.3001.5482前言:在Linux操作系统中,进程通信(IPC)是操作系统的一项核心功能,用于在不同进程之间交换数据或信号。这种能力在多任务操作系统中尤为重要,因为进程之间通常需要协作完成复杂......
  • 快速部署WSL(Windows Subsystem for Linux)
    概述WindowsSubsystemforLinux(WSL)是微软为Windows10及更高版本推出的一项功能,允许用户在Windows上运行Linux二进制可执行文件。WSL提供了一个完全兼容的Linux内核接口,使用户能够在不使用虚拟机或双启动的情况下运行Linux环境。本文将详细介绍如何快速部署WSL,包括安装、配置和......
  • Linux常用命令总结
    Linux常用命令指南文章目录Linux常用命令指南1.文件与目录操作命令(1)ls-列出目录内容(2)cd-改变当前工作目录(3)pwd-显示当前目录(4)mkdir-创建新目录(5)rmdir-删除空目录(6)rm-删除文件或目录(7)mv-移动或重命名文件(8)cp-复制文件或目录2......
  • linux实现macos的timeMachine系统备份
    在上一篇文章中,我们详细介绍了Btrfs文件系统的基本使用方法和核心原理。本文将重点讲解如何利用Btrfs的特性来实现系统备份功能。实现原理其实很简单:Linux内核支持直接从Btrfs的子卷(subvolume)启动系统。基于这个特性,我们可以通过计划任务定期为系统根目录创建快照,再配合btrfs-lin......
  • Nexpose 7.3.0 for Linux & Windows - 漏洞扫描
    Nexpose7.3.0forLinux&Windows-漏洞扫描Rapid7on-premVulnerabilityManagement,releasedJan15,2025请访问原文链接:https://sysin.org/blog/nexpose-7/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgNexposeVulnerabilityScanner您的本地漏洞扫描......
  • 软件包管理器 ---【linux基础开发工具】
    文章目录一、软件包管理器1、什么是软件包2、Linux软件生态3、......
  • 首发 最新AWVS/Acunetix Premium V24.8高级版漏洞扫描器(最新版)Windows/Linux下载
    前言AcunetixPremium是一种Web应用程序安全解决方案,用于管理多个网站、Web应用程序和API的安全。集成功能允许您自动化DevOps和问题管理基础架构。AcunetixPremium:全面的Web应用程序安全解决方案Web应用程序对于企业和组织与客户、合作伙伴和员工的联系至关重要。......